Method and program product for robot communications

ABSTRACT

A method and program product includes communicating with a mobile edge computing server as a client. The mobile edge computing server is configured to be in control of a heterogeneous domain. A request to join the heterogeneous domain of the mobile edge computing server is made. The mobile edge computing server is configured for determining an on-board cache size of the requesting client, determining a download size for the requesting client, and transmitting a download to the requesting client. The download includes an application, an operating database, and a size determined by the download size. The download is received. At least one task determined by the download is executed.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present continuation patent application claims priority benefit ofthe U.S. nonprovisional patent application Ser. No. 15/390,256, entitled“Method and Program Product for Robot Communications” and filed on 23Dec. 2016. The contents of this related patent application isincorporated herein by reference for all purposes to the extent thatsuch subject matter is not inconsistent herewith or limiting hereof.

FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT

Not applicable.

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains materialthat is subject to copyright protection by the author thereof. Thecopyright owner has no objection to the facsimile reproduction by anyoneof the patent document or patent disclosure for the purposes ofreferencing as patent prior art, as it appears in the Patent andTrademark Office, patent file or records, but otherwise reserves allcopyright rights whatsoever.

BACKGROUND OF THE RELEVANT PRIOR ART

One or more embodiments of the invention generally relate to cloud basedcommunication. More particularly, certain embodiments of the inventionrelate to cloud based client communication.

The following background information may present examples of specificaspects of the prior art (e.g., without limitation, approaches, facts,or common wisdom) that, while expected to be helpful to further educatethe reader as to additional aspects of the prior art, is not to beconstrued as limiting the present invention, or any embodiments thereof,to anything stated or implied therein or inferred thereupon.

Conventional robots or automated machines/devices may be built toperform various tasks. Some conventional robots may include an on-boardcentral processing unit (CPU) with a set amount of memory to performprocessing and thus a set amount of processing power. The conventionalrobots may possibly learn by being pre-programmed on an on-board memoryor possibly by being programmed for observation and updating finitestate machines of the CPU. It may be contemplated that this process maytake a multiplicity of repetitions before a learned processing maybecome efficient. It may further be contemplated that conventionalrobots may contain costly and possibly unreplaceable databases due toparticular learning updates that may be untimely to replicate or may notbe able to be replicated at all. One may expect that the failure of theonboard memory may result in the loss of the database. In a case that aconventional robot may develop computing complications, recovery patchsoftware may need to be uploaded directly into the robot's CPU. It mayalso be contemplated that a conventional, stand-alone robot may bevulnerable to security issues from an unauthorized user, and aconsiderable amount of resources may be needed to monitor a multiplicityof stand-alone robots, each performing different tasks. The following isan example of a specific aspect in the prior art that, while expected tobe helpful to further educate the reader as to additional aspects of theprior art, is not to be construed as limiting the present invention, orany embodiments thereof, to anything stated or implied therein orinferred thereupon. By way of educational background, another aspect ofthe prior art generally useful to be aware of is that conventional robotsystems may include a conventional mobile robot having a controllerexecuting a control system for possibly controlling operation of therobot, wherein a conventional cloud computing service may be in typicalcommunication with the controller of the robot, and a remote computingdevice may also be in typical communication with the cloud computingservice. Furthermore, outputs of conventional robot sensors, such ascamera feeds, vision sensors, etc., may be typically provided to thecomputing device, via the cloud computing service, which may process theoutputs and may typically communicate instructions back to a robot, viathe cloud computing service, to possibly enable the robot to performfunctions.

In view of the foregoing, it is clear that these traditional techniquesare not perfect and leave room for more optimal approaches.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example, and not by wayof limitation, in the figures of the accompanying drawings and in whichlike reference numerals refer to similar elements and in which:

FIG. 1 illustrates an exemplary communication system architecture, inaccordance with an embodiment of the present invention;

FIG. 2, illustrates an exemplary software module diagram of acommunication system, in accordance with an embodiment of the presentinvention;

FIG. 3 illustrates another exemplary communication system architecture,in accordance with an embodiment of the present invention;

FIG. 4 illustrates another exemplary communication system architecture,in accordance with an embodiment of the present invention;

FIG. 5 illustrates a flowchart of an exemplary method of using acommunication system in accordance with an embodiment of the presentinvention;

FIG. 6 illustrates another exemplary communication system architecture,in accordance with an embodiment of the present invention;

FIG. 7 illustrates another exemplary communication system architecture,in accordance with an embodiment of the present invention;

FIG. 8 illustrates a flowchart of an exemplary method of MEC serverregistration, in accordance with an embodiment of the present invention;

FIG. 9 illustrates a flowchart of an exemplary method of MEC serverregistration, in accordance with an embodiment of the present invention;

FIG. 10 illustrates an exemplary method of a MEC gateway registrationwith a MEC controller and MEC servers, in accordance with an embodimentof the present invention;

FIG. 11 illustrates an exemplary method of a MEC server to servercommunication through the MEC gateway, in accordance with an embodimentof the present invention;

FIG. 12 illustrates an exemplary method of a MEC integration with acloud provider platform, in accordance with an embodiment of the presentinvention;

FIG. 13 illustrates an exemplary method of a MEC integration with acloud provider platform, in accordance with an embodiment of the presentinvention;

FIG. 14 illustrates an exemplary method of a MEC integration with acloud provider platform, in accordance with an embodiment of the presentinvention;

FIG. 15 illustrates an exemplary method of a Robo App state update indata center servers, in accordance with an embodiment of the presentinvention;

FIG. 16 illustrates an exemplary method of a MEC controller state updatein data center servers, in accordance with an embodiment of the presentinvention; and

FIG. 17 illustrates a block diagram depicting an exemplary client/serversystem which may be used by an exemplary web-enabled/networkedembodiment of the present invention.

Unless otherwise indicated illustrations in the figures are notnecessarily drawn to scale.

DETAILED DESCRIPTION OF SOME EMBODIMENTS

The present invention is best understood by reference to the detailedfigures and description set forth herein.

Embodiments of the invention are discussed below with reference to theFigures. However, those skilled in the art will readily appreciate thatthe detailed description given herein with respect to these figures isfor explanatory purposes as the invention extends beyond these limitedembodiments. For example, it should be appreciated that those skilled inthe art will, in light of the teachings of the present invention,recognize a multiplicity of alternate and suitable approaches, dependingupon the needs of the particular application, to implement thefunctionality of any given detail described herein, beyond theparticular implementation choices in the following embodiments describedand shown. That is, there are modifications and variations of theinvention that are too numerous to be listed but that all fit within thescope of the invention. Also, singular words should be read as pluraland vice versa and masculine as feminine and vice versa, whereappropriate, and alternative embodiments do not necessarily imply thatthe two are mutually exclusive.

It is to be further understood that the present invention is not limitedto the particular methodology, compounds, materials, manufacturingtechniques, uses, and applications, described herein, as these may vary.It is also to be understood that the terminology used herein is used forthe purpose of describing particular embodiments only, and is notintended to limit the scope of the present invention. It must be notedthat as used herein and in the appended claims, the singular forms “a,”“an,” and “the” include the plural reference unless the context clearlydictates otherwise. Thus, for example, a reference to “an element” is areference to one or more elements and includes equivalents thereof knownto those skilled in the art. Similarly, for another example, a referenceto “a step” or “a means” is a reference to one or more steps or meansand may include sub-steps and subservient means. All conjunctions usedare to be understood in the most inclusive sense possible. Thus, theword “or” should be understood as having the definition of a logical“or” rather than that of a logical “exclusive or” unless the contextclearly necessitates otherwise. Structures described herein are to beunderstood also to refer to functional equivalents of such structures.Language that may be construed to express approximation should be sounderstood unless the context clearly dictates otherwise.

All words of approximation as used in the present disclosure and claimsshould be construed to mean “approximate,” rather than “perfect,” andmay accordingly be employed as a meaningful modifier to any other word,specified parameter, quantity, quality, or concept. Words ofapproximation, include, yet are not limited to terms such as“substantial”, “nearly”, “almost”, “about”, “generally”, “largely”,“essentially”, “closely approximate”, etc.

As will be established in some detail below, it is well settle law, asearly as 1939, that words of approximation are not indefinite in theclaims even when such limits are not defined or specified in thespecification.

For example, see Ex parte Mallory, 52 USPQ 297, 297 (Pat. Off. Bd. App.1941) where the court said “The examiner has held that most of theclaims are inaccurate because apparently the laminar film will not beentirely eliminated. The claims specify that the film is “substantially”eliminated and for the intended purpose, it is believed that the slightportion of the film which may remain is negligible. We are of the view,therefore, that the claims may be regarded as sufficiently accurate.”

Note that claims need only “reasonably apprise those skilled in the art”as to their scope to satisfy the definiteness requirement. See EnergyAbsorption Sys., Inc. v. Roadway Safety Servs., Inc., Civ. App. 96-1264,slip op. at 10 (Fed. Cir. Jul. 3, 1997) (unpublished) Hybridtech v.Monoclonal Antibodies, Inc., 802 F.2d 1367, 1385, 231 USPQ 81, 94 (Fed.Cir. 1986), cert. denied, 480 U.S. 947 (1987). In addition, the use ofmodifiers in the claim, like “generally” and “substantial,” does not byitself render the claims indefinite. See Seattle Box Co. v. IndustrialCrating & Packing, Inc., 731 F.2d 818, 828-29, 221 USPQ 568, 575-76(Fed. Cir. 1984).

Moreover, the ordinary and customary meaning of terms like“substantially” includes “reasonably close to: nearly, almost, about”,connoting a term of approximation. See In re Frye, Appeal No.2009-006013, 94 USPQ2d 1072, 1077, 2010 WL 889747 (B.P.A.I. 2010)Depending on its usage, the word “substantially” can denote eitherlanguage of approximation or language of magnitude. Deering PrecisionInstruments, L.L.C. v. Vector Distribution Sys., Inc., 347 F.3d 1314,1323 (Fed. Cir. 2003) (recognizing the “dual ordinary meaning of th[e]term [“substantially”] as connoting a term of approximation or a term ofmagnitude”). Here, when referring to the “substantially halfway”limitation, the Specification uses the word “approximately” as asubstitute for the word “substantially” (Fact 4). (Fact 4). The ordinarymeaning of “substantially halfway” is thus reasonably close to or nearlyat the midpoint between the forward most point of the upper or outsoleand the rearward most point of the upper or outsole.

Similarly, the term ‘substantially’ is well recognized in case law tohave the dual ordinary meaning of connoting a term of approximation or aterm of magnitude. See Dana Corp. v. American Axle & Manufacturing,Inc., Civ. App. 04-1116, 2004 U.S. App. LEXIS 18265, *13-14 (Fed. Cir.Aug. 27, 2004) (unpublished). The term “substantially” is commonly usedby claim drafters to indicate approximation. See Cordis Corp. v.Medtronic AVE Inc., 339 F.3d 1352, 1360 (Fed. Cir. 2003) (“The patentsdo not set out any numerical standard by which to determine whether thethickness of the wall surface is ‘substantially uniform.’ The term‘substantially,’ as used in this context, denotes approximation. Thus,the walls must be of largely or approximately uniform thickness.”); seealso Deering Precision Instruments, LLC v. Vector Distribution Sys.,Inc., 347 F.3d 1314, 1322 (Fed. Cir. 2003); Epcon Gas Sys., Inc. v.Bauer Compressors, Inc., 279 F.3d 1022, 1031 (Fed. Cir. 2002). We findthat the term “substantially” was used in just such a manner in theclaims of the patents-in-suit: “substantially uniform wall thickness”denotes a wall thickness with approximate uniformity.

It should also be noted that such words of approximation as contemplatedin the foregoing clearly limits the scope of claims such as saying‘generally parallel’ such that the adverb ‘generally’ does not broadenthe meaning of parallel. Accordingly, it is well settled that such wordsof approximation as contemplated in the foregoing (e.g., like the phrase‘generally parallel’) envisions some amount of deviation from perfection(e.g., not exactly parallel), and that such words of approximation ascontemplated in the foregoing are descriptive terms commonly used inpatent claims to avoid a strict numerical boundary to the specifiedparameter. To the extent that the plain language of the claims relyingon such words of approximation as contemplated in the foregoing areclear and uncontradicted by anything in the written description hereinor the figures thereof, it is improper to rely upon the present writtendescription, the figures, or the prosecution history to add limitationsto any of the claim of the present invention with respect to such wordsof approximation as contemplated in the foregoing. That is, under suchcircumstances, relying on the written description and prosecutionhistory to reject the ordinary and customary meanings of the wordsthemselves is impermissible. See, for example, Liquid Dynamics Corp. v.Vaughan Co., 355 F.3d 1361, 69 USPQ2d 1595, 1600-01 (Fed. Cir. 2004).The plain language of phrase 2 requires a “substantial helical flow.”The term “substantial” is a meaningful modifier implying “approximate,”rather than “perfect.” In Cordis Corp. v. Medtronic AVE, Inc., 339 F.3d1352, 1361 (Fed. Cir. 2003), the district court imposed a precisenumeric constraint on the term “substantially uniform thickness.” Wenoted that the proper interpretation of this term was “of largely orapproximately uniform thickness” unless something in the prosecutionhistory imposed the “clear and unmistakable disclaimer” needed fornarrowing beyond this simple-language interpretation. Id. In Anchor WallSystems v. Rockwood Retaining Walls, Inc., 340 F.3d 1298, 1311 (Fed.Cir. 2003)” Id. at 1311. Similarly, the plain language of claim 1requires neither a perfectly helical flow nor a flow that returnsprecisely to the center after one rotation (a limitation that arisesonly as a logical consequence of requiring a perfectly helical flow).

The reader should appreciate that case law generally recognizes a dualordinary meaning of such words of approximation, as contemplated in theforegoing, as connoting a term of approximation or a term of magnitude;e.g., see Deering Precision Instruments, L.L.C. v. Vector Distrib. Sys.,Inc., 347 F.3d 1314, 68 USPQ2d 1716, 1721 (Fed. Cir. 2003), cert.denied, 124 S. Ct. 1426 (2004) where the court was asked to construe themeaning of the term “substantially” in a patent claim. Also see Epcon,279 F.3d at 1031 (“The phrase ‘substantially constant’ denotes languageof approximation, while the phrase ‘substantially below’ signifieslanguage of magnitude, i.e., not insubstantial.”). Also, see, e.g.,Epcon Gas Sys., Inc. v. Bauer Compressors, Inc., 279 F.3d 1022 (Fed.Cir. 2002) (construing the terms “substantially constant” and“substantially below”); Zodiac Pool Care, Inc. v. Hoffinger Indus.,Inc., 206 F.3d 1408 (Fed. Cir. 2000) (construing the term “substantiallyinward”); York Prods., Inc. v. Cent. Tractor Farm & Family Ctr., 99 F.3d1568 (Fed. Cir. 1996) (construing the term “substantially the entireheight thereof”); Tex. Instruments Inc. v. Cypress Semiconductor Corp.,90 F.3d 1558 (Fed. Cir. 1996) (construing the term “substantially in thecommon plane”). In conducting their analysis, the court instructed tobegin with the ordinary meaning of the claim terms to one of ordinaryskill in the art. Prima Tek, 318 F.3d at 1148. Reference to dictionariesand our cases indicates that the term “substantially” has numerousordinary meanings. As the district court stated, “substantially” canmean “significantly” or “considerably.” The term “substantially” canalso mean “largely” or “essentially.” Webster's New 20th CenturyDictionary 1817 (1983).

Words of approximation, as contemplated in the foregoing, may also beused in phrases establishing approximate ranges or limits, where the endpoints are inclusive and approximate, not perfect; e.g., see AK SteelCorp. v. Sollac, 344 F.3d 1234, 68 USPQ2d 1280, 1285 (Fed. Cir. 2003)where it where the court said [W]e conclude that the ordinary meaning ofthe phrase “up to about 10%” includes the “about 10%” endpoint. Aspointed out by AK Steel, when an object of the preposition “up to” isnonnumeric, the most natural meaning is to exclude the object (e.g.,painting the wall up to the door). On the other hand, as pointed out bySollac, when the object is a numerical limit, the normal meaning is toinclude that upper numerical limit (e.g., counting up to ten, seatingcapacity for up to seven passengers). Because we have here a numericallimit—“about 10%”—the ordinary meaning is that that endpoint isincluded.

In the present specification and claims, a goal of employment of suchwords of approximation, as contemplated in the foregoing, is to avoid astrict numerical boundary to the modified specified parameter, assanctioned by Pall Corp. v. Micron Separations, Inc., 66 F.3d 1211,1217, 36 USPQ2d 1225, 1229 (Fed. Cir. 1995) where it states “It is wellestablished that when the term “substantially” serves reasonably todescribe the subject matter so that its scope would be understood bypersons in the field of the invention, and to distinguish the claimedsubject matter from the prior art, it is not indefinite.” Likewise seeVerve LLC v. Crane Cams Inc., 311 F.3d 1116, 65 USPQ2d 1051, 1054 (Fed.Cir. 2002). Expressions such as “substantially” are used in patentdocuments when warranted by the nature of the invention, in order toaccommodate the minor variations that may be appropriate to secure theinvention. Such usage may well satisfy the charge to “particularly pointout and distinctly claim” the invention, 35 U.S.C. § 112, and indeed maybe necessary in order to provide the inventor with the benefit of hisinvention. In Andrew Corp. v. Gabriel Elecs. Inc., 847 F.2d 819, 821-22,6 USPQ2d 2010, 2013 (Fed. Cir. 1988) the court explained that usagessuch as “substantially equal” and “closely approximate” may serve todescribe the invention with precision appropriate to the technology andwithout intruding on the prior art. The court again explained in EcolabInc. v. Envirochem, Inc., 264 F.3d 1358, 1367, 60 USPQ2d 1173, 1179(Fed. Cir. 2001) that “like the term ‘about,’ the term ‘substantially’is a descriptive term commonly used in patent claims to ‘avoid a strictnumerical boundary to the specified parameter, see Ecolab Inc. v.Envirochem Inc., 264 F.3d 1358, 60 USPQ2d 1173, 1179 (Fed. Cir. 2001)where the court found that the use of the term “substantially” to modifythe term “uniform” does not render this phrase so unclear such thatthere is no means by which to ascertain the claim scope.

Similarly, other courts have noted that like the term “about,” the term“substantially” is a descriptive term commonly used in patent claims to“avoid a strict numerical boundary to the specified parameter.”; e.g.,see Pall Corp. v. Micron Seps., 66 F.3d 1211, 1217, 36 USPQ2d 1225, 1229(Fed. Cir. 1995); see, e.g., Andrew Corp. v. Gabriel Elecs. Inc., 847F.2d 819, 821-22, 6 USPQ2d 2010, 2013 (Fed. Cir. 1988) (noting thatterms such as “approach each other,” “close to,” “substantially equal,”and “closely approximate” are ubiquitously used in patent claims andthat such usages, when serving reasonably to describe the claimedsubject matter to those of skill in the field of the invention, and todistinguish the claimed subject matter from the prior art, have beenaccepted in patent examination and upheld by the courts). In this case,“substantially” avoids the strict 100% nonuniformity boundary.

Indeed, the foregoing sanctioning of such words of approximation, ascontemplated in the foregoing, has been established as early as 1939,see Ex parte Mallory, 52 USPQ 297, 297 (Pat. Off. Bd. App. 1941) where,for example, the court said “the claims specify that the film is“substantially” eliminated and for the intended purpose, it is believedthat the slight portion of the film which may remain is negligible. Weare of the view, therefore, that the claims may be regarded assufficiently accurate.” Similarly, In re Hutchison, 104 F.2d 829, 42USPQ 90, 93 (C.C.P.A. 1939) the court said “It is realized that“substantial distance” is a relative and somewhat indefinite term, orphrase, but terms and phrases of this character are not uncommon inpatents in cases where, according to the art involved, the meaning canbe determined with reasonable clearness.”

Hence, for at least the forgoing reason, Applicants submit that it isimproper for any examiner to hold as indefinite any claims of thepresent patent that employ any words of approximation.

Unless defined otherwise, all technical and scientific terms used hereinhave the same meanings as commonly understood by one of ordinary skillin the art to which this invention belongs. Preferred methods,techniques, devices, and materials are described, although any methods,techniques, devices, or materials similar or equivalent to thosedescribed herein may be used in the practice or testing of the presentinvention. Structures described herein are to be understood also torefer to functional equivalents of such structures. The presentinvention will be described in detail below with reference toembodiments thereof as illustrated in the accompanying drawings.

References to a “device,” an “apparatus,” a “system,” etc., in thepreamble of a claim should be construed broadly to mean “any structuremeeting the claim terms” exempt for any specific structure(s)/type(s)that has/(have) been explicitly disavowed or excluded oradmitted/implied as prior art in the present specification or incapableof enabling an object/aspect/goal of the invention. Furthermore, wherethe present specification discloses an object, aspect, function, goal,result, or advantage of the invention that a specific prior artstructure and/or method step is similarly capable of performing yet in avery different way, the present invention disclosure is intended to andshall also implicitly include and cover additional correspondingalternative embodiments that are otherwise identical to that explicitlydisclosed except that they exclude such prior art structure(s)/step(s),and shall accordingly be deemed as providing sufficient disclosure tosupport a corresponding negative limitation in a claim claiming suchalternative embodiment(s), which exclude such very different prior artstructure(s)/step(s) way(s).

From reading the present disclosure, other variations and modificationswill be apparent to persons skilled in the art. Such variations andmodifications may involve equivalent and other features which arealready known in the art, and which may be used instead of or inaddition to features already described herein.

Although Claims have been formulated in this Application to particularcombinations of features, it should be understood that the scope of thedisclosure of the present invention also includes any novel feature orany novel combination of features disclosed herein either explicitly orimplicitly or any generalization thereof, whether or not it relates tothe same invention as presently claimed in any Claim and whether or notit mitigates any or all of the same technical problems as does thepresent invention.

Features which are described in the context of separate embodiments mayalso be provided in combination in a single embodiment. Conversely,various features which are, for brevity, described in the context of asingle embodiment, may also be provided separately or in any suitablesubcombination. The Applicants hereby give notice that new Claims may beformulated to such features and/or combinations of such features duringthe prosecution of the present Application or of any further Applicationderived therefrom.

References to “one embodiment,” “an embodiment,” “example embodiment,”“various embodiments,” “some embodiments,” “embodiments of theinvention,” etc., may indicate that the embodiment(s) of the inventionso described may include a particular feature, structure, orcharacteristic, but not every possible embodiment of the inventionnecessarily includes the particular feature, structure, orcharacteristic. Further, repeated use of the phrase “in one embodiment,”or “in an exemplary embodiment,” “an embodiment,” do not necessarilyrefer to the same embodiment, although they may. Moreover, any use ofphrases like “embodiments” in connection with “the invention” are nevermeant to characterize that all embodiments of the invention must includethe particular feature, structure, or characteristic, and should insteadbe understood to mean “at least some embodiments of the invention”includes the stated particular feature, structure, or characteristic.

References to “user”, or any similar term, as used herein, may mean ahuman or non-human user thereof. Moreover, “user”, or any similar term,as used herein, unless expressly stipulated otherwise, is contemplatedto mean users at any stage of the usage process, to include, withoutlimitation, direct user(s), intermediate user(s), indirect user(s), andend user(s). The meaning of “user”, or any similar term, as used herein,should not be otherwise inferred or induced by any pattern(s) ofdescription, embodiments, examples, or referenced prior-art that may (ormay not) be provided in the present patent.

References to “end user”, or any similar term, as used herein, isgenerally intended to mean late stage user(s) as opposed to early stageuser(s). Hence, it is contemplated that there may be a multiplicity ofdifferent types of “end user” near the end stage of the usage process.Where applicable, especially with respect to distribution channels ofembodiments of the invention comprising consumed retailproducts/services thereof (as opposed to sellers/vendors or OriginalEquipment Manufacturers), examples of an “end user” may include, withoutlimitation, a “consumer”, “buyer”, “customer”, “purchaser”, “shopper”,“enjoyer”, “viewer”, or individual person or non-human thing benefitingin any way, directly or indirectly, from use of or interaction, withsome aspect of the present invention.

In some situations, some embodiments of the present invention mayprovide beneficial usage to more than one stage or type of usage in theforegoing usage process. In such cases where multiple embodimentstargeting various stages of the usage process are described, referencesto “end user”, or any similar term, as used therein, are generallyintended to not include the user that is the furthest removed, in theforegoing usage process, from the final user therein of an embodiment ofthe present invention.

Where applicable, especially with respect to retail distributionchannels of embodiments of the invention, intermediate user(s) mayinclude, without limitation, any individual person or non-human thingbenefiting in any way, directly or indirectly, from use of, orinteraction with, some aspect of the present invention with respect toselling, vending, Original Equipment Manufacturing, marketing,merchandising, distributing, service providing, and the like thereof.

References to “person”, “individual”, “human”, “a party”, “animal”,“creature”, or any similar term, as used herein, even if the context orparticular embodiment implies living user, maker, or participant, itshould be understood that such characterizations are sole by way ofexample, and not limitation, in that it is contemplated that any suchusage, making, or participation by a living entity in connection withmaking, using, and/or participating, in any way, with embodiments of thepresent invention may be substituted by such similar performed by asuitably configured non-living entity, to include, without limitation,automated machines, robots, humanoids, computational systems,information processing systems, artificially intelligent systems, andthe like. It is further contemplated that those skilled in the art willreadily recognize the practical situations where such living makers,users, and/or participants with embodiments of the present invention maybe in whole, or in part, replaced with such non-living makers, users,and/or participants with embodiments of the present invention. Likewise,when those skilled in the art identify such practical situations wheresuch living makers, users, and/or participants with embodiments of thepresent invention may be in whole, or in part, replaced with suchnon-living makers, it will be readily apparent in light of the teachingsof the present invention how to adapt the described embodiments to besuitable for such non-living makers, users, and/or participants withembodiments of the present invention. Thus, the invention is thus toalso cover all such modifications, equivalents, and alternatives fallingwithin the spirit and scope of such adaptations and modifications, atleast in part, for such non-living entities.

Headings provided herein are for convenience and are not to be taken aslimiting the disclosure in any way.

The enumerated listing of items does not imply that any or all of theitems are mutually exclusive, unless expressly specified otherwise.

It is understood that the use of specific component, device and/orparameter names are for example only and not meant to imply anylimitations on the invention. The invention may thus be implemented withdifferent nomenclature/terminology utilized to describe themechanisms/units/structures/components/devices/parameters herein,without limitation. Each term utilized herein is to be given itsbroadest interpretation given the context in which that term isutilized.

Terminology. The following paragraphs provide definitions and/or contextfor terms found in this disclosure (including the appended claims):

“Comprising.” This term is open-ended. As used in the appended claims,this term does not foreclose additional structure or steps. Consider aclaim that recites: “A memory controller comprising a system cache . . ..” Such a claim does not foreclose the memory controller from includingadditional components (e.g., a memory channel unit, a switch).

“Configured To.” Various units, circuits, or other components may bedescribed or claimed as “configured to” perform a task or tasks. In suchcontexts, “configured to” or “operable for” is used to connote structureby indicating that the mechanisms/units/circuits/components includestructure (e.g., circuitry and/or mechanisms) that performs the task ortasks during operation. As such, the mechanisms/unit/circuit/componentcan be said to be configured to (or be operable) for perform(ing) thetask even when the specified mechanisms/unit/circuit/component is notcurrently operational (e.g., is not on). Themechanisms/units/circuits/components used with the “configured to” or“operable for” language include hardware—for example, mechanisms,structures, electronics, circuits, memory storing program instructionsexecutable to implement the operation, etc. Reciting that amechanism/unit/circuit/component is “configured to” or “operable for”perform(ing) one or more tasks is expressly intended not to invoke 35U.S.C. .sctn.112, sixth paragraph, for thatmechanism/unit/circuit/component. “Configured to” may also includeadapting a manufacturing process to fabricate devices or components thatare adapted to implement or perform one or more tasks.

“Based On.” As used herein, this term is used to describe one or morefactors that affect a determination. This term does not forecloseadditional factors that may affect a determination. That is, adetermination may be solely based on those factors or based, at least inpart, on those factors. Consider the phrase “determine A based on B.”While B may be a factor that affects the determination of A, such aphrase does not foreclose the determination of A from also being basedon C. In other instances, A may be determined based solely on B.

The terms “a”, “an” and “the” mean “one or more”, unless expresslyspecified otherwise.

Unless otherwise indicated, all numbers expressing conditions,concentrations, dimensions, and so forth used in the specification andclaims are to be understood as being modified in all instances by theterm “about.” Accordingly, unless indicated to the contrary, thenumerical parameters set forth in the following specification andattached claims are approximations that may vary depending at least upona specific analytical technique.

The term “comprising,” which is synonymous with “including,”“containing,” or “characterized by” is inclusive or open-ended and doesnot exclude additional, unrecited elements or method steps. “Comprising”is a term of art used in claim language which means that the named claimelements are essential, but other claim elements may be added and stillform a construct within the scope of the claim.

As used herein, the phase “consisting of” excludes any element, step, oringredient not specified in the claim. When the phrase “consists of” (orvariations thereof) appears in a clause of the body of a claim, ratherthan immediately following the preamble, it limits only the element setforth in that clause; other elements are not excluded from the claim asa whole. As used herein, the phase “consisting essentially of” and“consisting of” limits the scope of a claim to the specified elements ormethod steps, plus those that do not materially affect the basis andnovel characteristic(s) of the claimed subject matter (see Norian Corp.v Stryker Corp., 363 F.3d 1321, 1331-32, 70 USPQ2d 1508, Fed. Cir.2004). Moreover, for any claim of the present invention which claims anembodiment “consisting essentially of” or “consisting of” a certain setof elements of any herein described embodiment it shall be understood asobvious by those skilled in the art that the present invention alsocovers all possible varying scope variants of any describedembodiment(s) that are each exclusively (i.e., “consisting essentiallyof”) functional subsets or functional combination thereof such that eachof these plurality of exclusive varying scope variants each consistsessentially of any functional subset(s) and/or functional combination(s)of any set of elements of any described embodiment(s) to the exclusionof any others not set forth therein. That is, it is contemplated that itwill be obvious to those skilled how to create a multiplicity ofalternate embodiments of the present invention that simply consistingessentially of a certain functional combination of elements of anydescribed embodiment(s) to the exclusion of any others not set forththerein, and the invention thus covers all such exclusive embodiments asif they were each described herein.

With respect to the terms “comprising,” “consisting of” and “consistingessentially of,” where one of these three terms is used herein, thepresently disclosed and claimed subject matter may include the use ofeither of the other two terms. Thus in some embodiments not otherwiseexplicitly recited, any instance of “comprising” may be replaced by“consisting of” or, alternatively, by “consisting essentially of”, andthus, for the purposes of claim support and construction for “consistingof” format claims, such replacements operate to create yet otheralternative embodiments “consisting essentially of” only the elementsrecited in the original “comprising” embodiment to the exclusion of allother elements.

Devices or system modules that are in at least general communicationwith each other need not be in continuous communication with each other,unless expressly specified otherwise. In addition, devices or systemmodules that are in at least general communication with each other maycommunicate directly or indirectly through one or more intermediaries.

A description of an embodiment with several components in communicationwith each other does not imply that all such components are required. Onthe contrary a variety of optional components are described toillustrate the wide variety of possible embodiments of the presentinvention.

As is well known to those skilled in the art many careful considerationsand compromises typically must be made when designing for the optimalmanufacture of a commercial implementation any system, and inparticular, the embodiments of the present invention. A commercialimplementation in accordance with the spirit and teachings of thepresent invention may configured according to the needs of theparticular application, whereby any aspect(s), feature(s), function(s),result(s), component(s), approach(es), or step(s) of the teachingsrelated to any described embodiment of the present invention may besuitably omitted, included, adapted, mixed and matched, or improvedand/or optimized by those skilled in the art, using their average skillsand known techniques, to achieve the desired implementation thataddresses the needs of the particular application.

In the following description and claims, the terms “coupled” and“connected,” along with their derivatives, may be used. It should beunderstood that these terms are not intended as synonyms for each other.Rather, in particular embodiments, “connected” may be used to indicatethat two or more elements are in direct physical or electrical contactwith each other. “Coupled” may mean that two or more elements are indirect physical or electrical contact. However, “coupled” may also meanthat two or more elements are not in direct contact with each other, butyet still cooperate or interact with each other.

A “computer” may refer to one or more apparatus and/or one or moresystems that are capable of accepting a structured input, processing thestructured input according to prescribed rules, and producing results ofthe processing as output. Examples of a computer may include: acomputer; a stationary and/or portable computer; a computer having asingle processor, multiple processors, or multi-core processors, whichmay operate in parallel and/or not in parallel; a general purposecomputer; a supercomputer; a mainframe; a super mini-computer; amini-computer; a workstation; a micro-computer; a server; a client; aninteractive television; a web appliance; a telecommunications devicewith internet access; a hybrid combination of a computer and aninteractive television; a portable computer; a tablet personal computer(PC); a personal digital assistant (PDA); a portable telephone;application-specific hardware to emulate a computer and/or software,such as, for example, a digital signal processor (DSP), afield-programmable gate array (FPGA), an application specific integratedcircuit (ASIC), an application specific instruction-set processor(ASIP), a chip, chips, a system on a chip, or a chip set; a dataacquisition device; an optical computer; a quantum computer; abiological computer; and generally, an apparatus that may accept data,process data according to one or more stored software programs, generateresults, and typically include input, output, storage, arithmetic,logic, and control units.

Those of skill in the art will appreciate that where appropriate, someembodiments of the disclosure may be practiced in network computingenvironments with many types of computer system configurations,including personal computers, hand-held devices, multi-processorsystems, microprocessor-based or programmable consumer electronics,network PCs, minicomputers, mainframe computers, and the like. Whereappropriate, embodiments may also be practiced in distributed computingenvironments where tasks are performed by local and remote processingdevices that are linked (either by hardwired links, wireless links, orby a combination thereof) through a communications network. In adistributed computing environment, program modules may be located inboth local and remote memory storage devices.

“Software” may refer to prescribed rules to operate a computer. Examplesof software may include: code segments in one or more computer-readablelanguages; graphical and or/textual instructions; applets; pre-compiledcode; interpreted code; compiled code; and computer programs.

The example embodiments described herein can be implemented in anoperating environment comprising computer-executable instructions (e.g.,software) installed on a computer, in hardware, or in a combination ofsoftware and hardware. The computer-executable instructions can bewritten in a computer programming language or can be embodied infirmware logic. If written in a programming language conforming to arecognized standard, such instructions can be executed on a variety ofhardware platforms and for interfaces to a variety of operating systems.Although not limited thereto, computer software program code forcarrying out operations for aspects of the present invention can bewritten in any combination of one or more suitable programminglanguages, including an object oriented programming languages and/orconventional procedural programming languages, and/or programminglanguages such as, for example, Hypertext Markup Language (HTML),Dynamic HTML, Extensible Markup Language (XML), Extensible StylesheetLanguage (XSL), Document Style Semantics and Specification Language(DSSSL), Cascading Style Sheets (CSS), Synchronized MultimediaIntegration Language (SMIL), Wireless Markup Language (WML), Java™,Jini™, C, C++, Smalltalk, Perl, UNIX Shell, Visual Basic or Visual BasicScript, Virtual Reality Markup Language (VRML), ColdFusion™ or othercompilers, assemblers, interpreters or other computer languages orplatforms.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

A network is a collection of links and nodes (e.g., multiple computersand/or other devices connected together) arranged so that informationmay be passed from one part of the network to another over multiplelinks and through various nodes. Examples of networks include theInternet, the public switched telephone network, the global Telexnetwork, computer networks (e.g., an intranet, an extranet, a local-areanetwork, or a wide-area network), wired networks, and wireless networks.

The Internet is a worldwide network of computers and computer networksarranged to allow the easy and robust exchange of information betweencomputer users. Hundreds of millions of people around the world haveaccess to computers connected to the Internet via Internet ServiceProviders (ISPs). Content providers (e.g., website owners or operators)place multimedia information (e.g., text, graphics, audio, video,animation, and other forms of data) at specific locations on theInternet referred to as webpages. Websites comprise a collection ofconnected, or otherwise related, webpages. The combination of all thewebsites and their corresponding webpages on the Internet is generallyknown as the World Wide Web (WWW) or simply the Web.

Aspects of the present invention are described below with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

The flowchart and block diagrams in the figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments. In this regard, each block in the flowchart or blockdiagrams may represent a module, segment, or portion of code, whichcomprises one or more executable instructions for implementing thespecified logical function(s). It should also be noted that, in somealternative implementations, the functions noted in the block may occurout of the order noted in the figures. For example, two blocks shown insuccession may, in fact, be executed substantially concurrently, or theblocks may sometimes be executed in the reverse order, depending uponthe functionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts, or combinations of special purpose hardware andcomputer instructions.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

Further, although process steps, method steps, algorithms or the likemay be described in a sequential order, such processes, methods andalgorithms may be configured to work in alternate orders. In otherwords, any sequence or order of steps that may be described does notnecessarily indicate a requirement that the steps be performed in thatorder. The steps of processes described herein may be performed in anyorder practical. Further, some steps may be performed simultaneously.

It will be readily apparent that the various methods and algorithmsdescribed herein may be implemented by, e.g., appropriately programmedgeneral purpose computers and computing devices. Typically, a processor(e.g., a microprocessor) will receive instructions from a memory or likedevice, and execute those instructions, thereby performing a processdefined by those instructions. Further, programs that implement suchmethods and algorithms may be stored and transmitted using a variety ofknown media.

When a single device or article is described herein, it will be readilyapparent that more than one device/article (whether or not theycooperate) may be used in place of a single device/article. Similarly,where more than one device or article is described herein (whether ornot they cooperate), it will be readily apparent that a singledevice/article may be used in place of the more than one device orarticle.

The functionality and/or the features of a device may be alternativelyembodied by one or more other devices which are not explicitly describedas having such functionality/features. Thus, other embodiments of thepresent invention need not include the device itself.

The term “computer-readable medium” as used herein refers to any mediumthat participates in providing data (e.g., instructions) which may beread by a computer, a processor or a like device. Such a medium may takemany forms, including but not limited to, non-volatile media, volatilemedia, and transmission media. Non-volatile media include, for example,optical or magnetic disks and other persistent memory. Volatile mediainclude dynamic random access memory (DRAM), which typically constitutesthe main memory. Transmission media include coaxial cables, copper wireand fiber optics, including the wires that comprise a system bus coupledto the processor. Transmission media may include or convey acousticwaves, light waves and electromagnetic emissions, such as thosegenerated during radio frequency (RF) and infrared (IR) datacommunications. Common forms of computer-readable media include, forexample, a floppy disk, a flexible disk, hard disk, magnetic tape, anyother magnetic medium, a CD-ROM, DVD, any other optical medium, punchcards, paper tape, any other physical medium with patterns of holes, aRAM, a PROM, an EPROM, a FLASH-EEPROM, removable media, flash memory, a“memory stick”, any other memory chip or cartridge, a carrier wave asdescribed hereinafter, or any other medium from which a computer canread.

Various forms of computer readable media may be involved in carryingsequences of instructions to a processor. For example, sequences ofinstruction (i) may be delivered from RAM to a processor, (ii) may becarried over a wireless transmission medium, and/or (iii) may beformatted according to numerous formats, standards or protocols, such asBluetooth, TDMA, CDMA, 3G.

Where databases are described, it will be understood by one of ordinaryskill in the art that (i) alternative database structures to thosedescribed may be readily employed, (ii) other memory structures besidesdatabases may be readily employed. Any schematic illustrations andaccompanying descriptions of any sample databases presented herein areexemplary arrangements for stored representations of information. Anynumber of other arrangements may be employed besides those suggested bythe tables shown. Similarly, any illustrated entries of the databasesrepresent exemplary information only; those skilled in the art willunderstand that the number and content of the entries can be differentfrom those illustrated herein. Further, despite any depiction of thedatabases as tables, an object-based model could be used to store andmanipulate the data types of the present invention and likewise, objectmethods or behaviors can be used to implement the processes of thepresent invention.

A “computer system” may refer to a system having one or more computers,where each computer may include a computer-readable medium embodyingsoftware to operate the computer or one or more of its components.Examples of a computer system may include: a distributed computer systemfor processing information via computer systems linked by a network; twoor more computer systems connected together via a network fortransmitting and/or receiving information between the computer systems;a computer system including two or more processors within a singlecomputer; and one or more apparatuses and/or one or more systems thatmay accept data, may process data in accordance with one or more storedsoftware programs, may generate results, and typically may includeinput, output, storage, arithmetic, logic, and control units.

A “network” may refer to a number of computers and associated devicesthat may be connected by communication facilities. A network may involvepermanent connections such as cables or temporary connections such asthose made through telephone or other communication links. A network mayfurther include hard-wired connections (e.g., coaxial cable, twistedpair, optical fiber, waveguides, etc.) and/or wireless connections(e.g., radio frequency waveforms, free-space optical waveforms, acousticwaveforms, etc.). Examples of a network may include: an internet, suchas the Internet; an intranet; a local area network (LAN); a wide areanetwork (WAN); and a combination of networks, such as an internet and anintranet.

As used herein, the “client-side” application should be broadlyconstrued to refer to an application, a page associated with thatapplication, or some other resource or function invoked by a client-siderequest to the application. A “browser” as used herein is not intendedto refer to any specific browser (e.g., Internet Explorer, Safari,FireFox, or the like), but should be broadly construed to refer to anyclient-side rendering engine that can access and displayInternet-accessible resources. A “rich” client typically refers to anon-HTTP based client-side application, such as an SSH or CFIS client.Further, while typically the client-server interactions occur usingHTTP, this is not a limitation either. The client server interaction maybe formatted to conform to the Simple Object Access Protocol (SOAP) andtravel over HTTP (over the public Internet), FTP, or any other reliabletransport mechanism (such as IBM® MQSeries® technologies and CORBA, fortransport over an enterprise intranet) may be used. Any application orfunctionality described herein may be implemented as native code, byproviding hooks into another application, by facilitating use of themechanism as a plug-in, by linking to the mechanism, and the like.

Exemplary networks may operate with any of a number of protocols, suchas Internet protocol (IP), asynchronous transfer mode (ATM), and/orsynchronous optical network (SONET), user datagram protocol (UDP), IEEE802.x, etc.

Embodiments of the present invention may include apparatuses forperforming the operations disclosed herein. An apparatus may bespecially constructed for the desired purposes, or it may comprise ageneral-purpose device selectively activated or reconfigured by aprogram stored in the device.

Embodiments of the invention may also be implemented in one or acombination of hardware, firmware, and software. They may be implementedas instructions stored on a machine-readable medium, which may be readand executed by a computing platform to perform the operations describedherein.

More specifically, as will be appreciated by one skilled in the art,aspects of the present invention may be embodied as a system, method orcomputer program product. Accordingly, aspects of the present inventionmay take the form of an entirely hardware embodiment, an entirelysoftware embodiment (including firmware, resident software, micro-code,etc.) or an embodiment combining software and hardware aspects that mayall generally be referred to herein as a “circuit,” “module” or“system.” Furthermore, aspects of the present invention may take theform of a computer program product embodied in one or more computerreadable medium(s) having computer readable program code embodiedthereon.

In the following description and claims, the terms “computer programmedium” and “computer readable medium” may be used to generally refer tomedia such as, but not limited to, removable storage drives, a hard diskinstalled in hard disk drive, and the like. These computer programproducts may provide software to a computer system. Embodiments of theinvention may be directed to such computer program products.

An algorithm is here, and generally, considered to be a self-consistentsequence of acts or operations leading to a desired result. Theseinclude physical manipulations of physical quantities. Usually, thoughnot necessarily, these quantities take the form of electrical ormagnetic signals capable of being stored, transferred, combined,compared, and otherwise manipulated. It has proven convenient at times,principally for reasons of common usage, to refer to these signals asbits, values, elements, symbols, characters, terms, numbers or the like.It should be understood, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities.

Unless specifically stated otherwise, and as may be apparent from thefollowing description and claims, it should be appreciated thatthroughout the specification descriptions utilizing terms such as“processing,” “computing,” “calculating,” “determining,” or the like,refer to the action and/or processes of a computer or computing system,or similar electronic computing device, that manipulate and/or transformdata represented as physical, such as electronic, quantities within thecomputing system's registers and/or memories into other data similarlyrepresented as physical quantities within the computing system'smemories, registers or other such information storage, transmission ordisplay devices.

Additionally, the phrase “configured to” or “operable for” can includegeneric structure (e.g., generic circuitry) that is manipulated bysoftware and/or firmware (e.g., an FPGA or a general-purpose processorexecuting software) to operate in a manner that is capable of performingthe task(s) at issue. “Configured to” may also include adapting amanufacturing process (e.g., a semiconductor fabrication facility) tofabricate devices (e.g., integrated circuits) that are adapted toimplement or perform one or more tasks.

In a similar manner, the term “processor” may refer to any device orportion of a device that processes electronic data from registers and/ormemory to transform that electronic data into other electronic data thatmay be stored in registers and/or memory. A “computing platform” maycomprise one or more processors.

Embodiments within the scope of the present disclosure may also includetangible and/or non-transitory computer-readable storage media forcarrying or having computer-executable instructions or data structuresstored thereon. Such non-transitory computer-readable storage media canbe any available media that can be accessed by a general purpose orspecial purpose computer, including the functional design of any specialpurpose processor as discussed above. By way of example, and notlimitation, such non-transitory computer-readable media can include RAM,ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storageor other magnetic storage devices, or any other medium which can be usedto carry or store desired program code means in the form ofcomputer-executable instructions, data structures, or processor chipdesign. When information is transferred or provided over a network oranother communications connection (either hardwired, wireless, orcombination thereof) to a computer, the computer properly views theconnection as a computer-readable medium. Thus, any such connection isproperly termed a computer-readable medium. Combinations of the aboveshould also be included within the scope of the computer-readable media.

While a non-transitory computer readable medium includes, but is notlimited to, a hard drive, compact disc, flash memory, volatile memory,random access memory, magnetic memory, optical memory, semiconductorbased memory, phase change memory, optical memory, periodicallyrefreshed memory, and the like; the non-transitory computer readablemedium, however, does not include a pure transitory signal per se; i.e.,where the medium itself is transitory.

It is to be understood that any exact measurements/dimensions orparticular construction materials indicated herein are solely providedas examples of suitable configurations and are not intended to belimiting in any way. Depending on the needs of the particularapplication, those skilled in the art will readily recognize, in lightof the following teachings, a multiplicity of suitable alternativeimplementation details.

It may be contemplated that cloud communication may be used for amultiplicity of practical applications, for example, and withoutlimitation, at least stand-alone/individual robotics. It may further becontemplated that many uses of cloud communication may provide solutionsfor many challenges related to individual robotics. It may also becontemplated that improvements in at least computer learning, dataanalyzation, task performance, and robot to robot interaction, may beachieved by one or more ways including, for example, and withoutlimitation, possibly maintaining databases in cloud data center servers,possibly implementing cloud computing, possibly providing anopen-source/open-access platform, and possibly implementing collectiverobot learning and offline learning. It may be contemplated that thecloud data center servers may maintain large databases (Big Data),wherein the databases may index a global library of images, maps, andobject data that may improve learning for the individual robots.Moreover, the cloud data center servers may be maintained remotely fromthe individual robots and thus may be protected from robotic failures.Furthermore, the use of the cloud data center servers may provide anefficient monitoring of the individual robots and a message exchangebetween the robots and server when the robots may be connected to eachother via the cloud data center servers, and thus may improve security.It may further be contemplated that cloud computing may providemulti-core processing power that may help decrease a processing time forat least, and without limitation, parallel computing images, texts, anddata, learned by individual robots. A faster processing of the data mayhelp for example, and without limitation, directing robot action andmotion planning. It may further be contemplated that robotic learningmay be further improved by sharing code, data, algorithms, and hardwaredesigns through an open-source/open-access community platform, and oncethe individual robots may start sharing their learning with other robotswithin and/or outside a domain, based on, for example, and withoutlimitation, a data type, the robots may increase respective learningrates. It may also be contemplated that offline and on-demand humanguidance may be provided for possible for evaluation, learning, anderror recovery that may help robots to become more intelligent andsophisticated. Error recovery handling may become relatively easier withthe use of cloud robotics. For example, and without limitation, as theindividual robots may be monitored in a cloud server controller,substantially any on-demand and offline error detection may be possiblein a background. Also, an operator may intervene for correction as maybe needed and/or when possibly needed in a case that a controller mayfail to do an auto correction.

Conventional robot systems may generally provide individual robots intypical communication with cloud computing, wherein robotic applicationsmay typically be performed by the cloud computing. It may further becontemplated that conventional robotic systems may not includeintegrated individual robotic groups/domains with one or more MobileEdge Computing (MEC) serves, wherein Mobile Edge Computing may beintegrated with the cloud communication as described below. It may becontemplated that many embodiments of the present invention may providea unique approach to cloud communication, wherein the approach mayprovide much more efficient and scalable systems by organizing robotsinto Robo domains and further connecting many of the robots of the Robodomains with one or more MEC Servers.

Many embodiments of the present invention may include integrating MobileEdge Computing (MEC) with the cloud communication. It may becontemplated that this integration may provide many optimal practicalapplications for cloud robotics. In many embodiments of the presentinvention, one or more MEC servers may operate in close communicationalproximity over one or more cellular networks (Mobile Edge), wherein theproximity may be a distance with respect to one or more cellular basestations. In many embodiments, the one or more MEC servers may alsooperate over wireless networks, wired networks, internet, wide areanetworks (WAN), local area networks (LAN), or any combination thereof,and may perform many robotic computing applications. In someembodiments, the one or more MEC servers may provide location awareservice to a specific robotics application. In many embodimentsimplementation of the one or MEC servers may virtualize individualrobots and may scale/distribute one or more robotics applications. Insome embodiments, a latency for robotics applications may be decreasedby performing computations over the one or more networks. In manyembodiment of the present invention, the integration may provideconnecting to an IP/MPLS network, which may help to maintain shadowrobotics applications ran in a data center (DC) cloud. Furtherintegration with a MEC controller may help to perform the analytics forrobotics applications and may push data in the DC cloud. In manyembodiments, the one or more MEC severs may also provide aninfrastructure to operably couple a multiplicity of robotic domains byconnecting through a MEC gateway, wherein a robotic domain may be asubset of a given Robo application with individual robots that may beassigned to the application. By way of illustrative example, and withoutlimitation, exemplary robots may be agricultural robots, whereinagricultural robots may be robots which may perform tasks related toagricultural work and thus may belong to an agricultural Roboapplication. In a further exemplary, and without limitation, case,multiple groups of agricultural robots, among the agriculture Roboapplication may be created based on their location. Robots in a certainlocation, connected through a same network and performing same roboticsapplications may be of a same Robo domain and may belong to a same Roboapplication. In some embodiments, substantially all robot to robotcommunication may occur through the one or more MEC servers running Roboapplications and possibly re-directing the communication. Furthermore,in some embodiments of the present invention, the one or more MECservers may perform selective download to the robots to possibly makethem relatively light-weight. The robots are light weight may mean therobots may not built as super intelligence. The intelligence may bebuilt inside the Mobile Edge/MEC Servers as described herein. The MECservers may control the robots and push the intelligence or downloadrobotic application software into the robots. As the robots may notpre-built with super intelligence software on board they may no longerbe costly, their manufacturing cost may become much cheaper. The robotsmay not need to be tied with any robotic applications while building therobots. Depending upon the physical robotic structure, the same robotmay be used for different Robotic applications. In many embodiments,utilizing the one or more MEC servers remotely over network may providestronger security. It may be contemplated that various features of theintegrated MEC cloud robotics, may be used in combination to potentiallymake individual robots relatively simple enough to reduce a cost andalso possibly speed up production. Many more new benefits may becomereadily recognized by those skilled in the art in light of the teachingsof Mobile Edge Computing being integrated with Cloud Robotics asdescribed below.

In many embodiments of the present invention, a communication system mayinclude one or more individual clients within a client domain, whereinthe one or more individual clients may be operably coupled with a MECserver and a MEC controller. Furthermore, in many embodiments, amultiplicity of client domains may be operably coupled via a MECgateway. In some embodiments, a computing processing workload of the oneor more individual clients may be reduced by running operatingapplications in the MEC server and thus offloading the workload from theclient. In many embodiments of the present invention, the communicationsystem may further include a one or more individual clients that maybelong to particular client domains in operable communication with oneor more MEC servers and in operable communication with one or more MECcontrollers, wherein data may be downloaded to the individual clientsvia the one or more MEC servers and the one or more MEC controllers. Insome embodiments, a MEC server may maintain efficient connections with amultiplicity of clients, wherein a MEC controller may further create amaster view of a multiplicity of MEC servers and thus may aid in themaintaining of the efficient connections. In many embodiments, thecommunication system may further be configured to provide optimal loadbalancing for the MEC servers, wherein the MEC servers may be furtherconfigured to execute selective and/or full download of one or moreoperating applications to one or more individual clients based on anon-board cache size of the one or more individual clients. In manyembodiments of the present invention, a communication system may alsoinclude a MEC server that may aid in internal domain clientcommunication. Furthermore, in some embodiments a communication systemmay be connected to one or more existing IP/MPLS network so that one ormore MEC servers may maintain one or more operating application shadowdatabases (DB)s in one or more data center cloud servers, wherein a MECcontroller may also be connected to the one or more data center cloudservers to maintain an operating application controller master database.In many embodiments of the present invention a client may include arobot, an automated computing device, a GUI enabled general purposecomputer, sensors, a vehicle configured with automated processes suchas, and without limitation, an automated airplane, an automated motorvehicle, an automated train, an automated aquatic vehicle, an automatedhelicopter, an automated drone, or other general connected devices withon-board memory and processors to download the application for theconnected devices and to process the actions.

As will be described in some detail below with reference to the figures,in many embodiments of the present invention a communication system mayprovide auto discovery and inter-domain communication abilities forcloud communication that may be integrated with mobile edge computing(MEC), wherein one or more client domains may be operably coupled withone or more MEC controllers, one or more MEC servers and one or more MECgateways. In some embodiments of the present invention one or moreindividual clients may be automatically discovered by and connected withone or more MEC servers, wherein one or more operating applications maybe downloaded to the one or more individual clients. In many embodimentsof the present invention, a multiplicity of clients may be groupedtogether in the one or more client domains, wherein clients that may begrouped to a particular client domain may also be governed by aparticular operating application, furthermore, an operating applicationmay include executable computer-readable instructions that may beexecuted by processors of the one or more clients, which may cause theclients to perform tasks and operations related to for example, andwithout limitation, defense, agriculture, manufacturing, flight,construction, maintenance, ground movement, aquatic movement, signalprocessing, data collection, data transmission, or any combinationthereof which may be assigned to the one or more clients in order forthe one or more clients to possibly perform particular respective tasksrelated to the particular operating application.

FIG. 1 illustrates an exemplary communication system architecture 100,in accordance with an embodiment of the present invention. In thepresent embodiment, the communication system architecture may include amultiplicity of remote clients with a sampling denoted as first remoteclients 104 and second remote clients 108, wherein the first remoteclients and the second remote clients may be robots or substantially anyother computing device that may receive executable computer-readableinstructions over a network to actuate the device to perform automatedfunctions. In the present embodiment, the communication system mayfurther include a multiplicity of client domains which may include thefirst remote clients and the second remote clients, wherein a samplingof the client domains may be denoted as a first client domain 112 and asecond client domain 116. Furthermore, the first and second clientdomains may be configured to be a robo domains, wherein the robo domainsmay include, for example, and without limitation, a multiplicity ofrobots. In some alternative embodiments the multiplicity of clientdomains may be domains including, for example, and without limitation, amultiplicity of substantially any other types of computing devices thatmay receive executable computer-readable instructions over a network toactuate automated functions of the device to perform particular tasks,wherein domains may be identified by the type of device that may beincluded within the domains. In the present embodiment the communicationsystem may further include a multiplicity of MEC servers; a sampling ofMEC servers may be denoted as a first MEC server 120 and a second MECserver 124, wherein the first MEC server may include one or more firstoperation application databases 128, and the second MEC server mayinclude one or more second operation application databases 132. In manyembodiments, the one or more first and second operation applicationdatabases may include one or more operating applications furthercomprising operational application information related to operationalfunctions of the multiplicity of clients, wherein the operationalapplication information may include for example, and without limitation,client connection data, client status data, downloadable clientoperation data, client computing data, and executable computer-readableinstructions that may be downloaded and executed by processors of theclients, which may cause the clients to perform tasks and operationsrelated to, for example, and without limitation, defense, agriculture,manufacturing, flight, construction, maintenance, ground movement,aquatic movement, signal processing, data collection, data transmission,or any combination thereof which may be assigned to the clients in orderfor the clients to possibly perform particular respective tasks relatedto the one or more operating applications. In the present embodiment,the one or more first and second operation application databases thatmay include one or more operating applications may be robo applicationdatabases, wherein the robo application databases may include one ormore robo applications. The robo applications may further include robotoperation application information, wherein connection data, status data,downloadable operation data, computing data, and executablecomputer-readable instructions that may be downloaded to and executed byrobots and thus may govern the robots to perform particular respectivetasks. In some alternative embodiments the databases, applications, andapplication information may be related to, for example, and withoutlimitation, substantially any other computing device that may receiveexecutable computer-readable instructions over a network to actuateautomated functions of the device to perform particular tasks, whereindatabases, applications and application information may be representedby a type of device that may be controlled. In the present embodiment,the communication system may further include a multiplicity of cellularnetworks, wherein a sampling of the multiplicity of cellular networksmay be denoted as a first cellular network 136 and a second cellularnetwork 140. In many embodiments of the present invention, themultiplicity of client domains which may include the multiplicity ofremote clients may be operably coupled to the multiplicity of MECservers via the multiplicity of cellular networks. Furthermore, in thepresent embodiment, first MEC server 120 may be configured to be in aclose communicational proximity to first cellular network 136 and secondMEC server 124 may be in a close communicational proximity to a secondcellular network 140. In many embodiments of the present invention, thecommunication system may further include a MEC controller 140, whereineach of the multiplicity of MEC servers may be operably couple to theMEC controller via a multiplicity of server-controller communicationchannels. In the present embodiment, a sampling of the multiplicity ofserver-controller communication channels may be denoted as a firstserver-controller communication channel 144 and a secondserver-controller channel 148, wherein the first MEC sever may beoperably couple to the MEC controller via server-controllercommunication channel 144, moreover, the second MEC server may beoperably coupled to the MEC controller via server-controllercommunication channel 148. In many embodiments, the multiplicity ofserver-controller communication channels may include IP/MPLS networks,wireless networks, wired networks, internet, intranet, local areanetworks (LANs), wide area networks (WANs), wired telephone networks,substantially any other network supporting data communication betweenrespective entities, or any combination thereof. In the presentembodiment, MEC controller 140 may further include an operatingapplication controller master database 144, wherein the operatingapplication controller master database may store a table comprisingindexed client registration information and communication system datawhich may be used maintain an optimal load balance. In many embodimentsof the present invention, the communication system may further include aMEC gateway 148, wherein the MEC gateway may be operably coupled to themultiplicity of MEC servers via a multiplicity of server-gatewaycommunication channels. In the present embodiment, a sampling of themultiplicity of server-gateway communication channels may be denoted asa first server-gateway communication channel 152 and a secondserver-gateway communication channel 156, wherein the first MEC servermay be operably couple to the MEC gateway via the first sever-gatewaycommunication channel, moreover, the second MEC server may be operablycoupled to the MEC gateway via the second server-gateway communicationchannel. In many embodiments of the present invention, the multiplicityof server-gateway communication channels may include IP/MPLS, wirelessnetworks, wired networks, internet, intranet, local area networks(LANs), wide area networks (WANs), wired telephone networks,substantially any other network supporting data communication betweenrespective entities, or any combination thereof. In some embodiments,each MEC Server may establish bi-directional secure session with the MECGateway. The security may be based on, but not limited to, the standardIPSec security. In the present embodiment, the communication system mayfurther include internet 160, communication overlay/tunneling 164, EdgePE 168, and a data center cloud 172 wherein, the MEC gateway may beoperably coupled with the data center cloud via the internet,communication overlay/tunneling 164, and Edge PE 168. Theoverlay/tunneling 164 may, without limitation, be over MPLSoGRE, VXLANor IP/MPLS network. The Egress Edge PE router 168 may act as a DataCenter Interconnect (DCI) device and may have overlay/tunnelingconnection to a data center primary 176 and backup 180 servers. TheseServers may have multiple Virtual Machines (VM)s running and each of theVMs may be viewed as maintaining one to one replication with the MECServer Robo Application. MEC Server 120 Robo Application 128 may bedeployed or brought up in one of the VMs in both primary 176 and backup180 servers and the second/another MEC Server 124 Robo Application 132may be deployed or brought up in another VM in both primary 176 andbackup 180 servers. As the MEC Server Robo Application DB gets updatedthrough the registration mechanism with the MEC Controller and throughRobo Joining/Leaving these Robo Application data/state information mayalso be updated as well in the primary 176 and backup 180 servers VMs.This way MEC Server Robo Application Data Base & application statetransition is stored as well in the corresponding VM in the DataCenter's Primary and Backup Server. In some embodiments, the MEC Serversmay be configured as to how frequently they may be updating the RoboApplication shadow state information in the DC Cloud VM. The MEC Serversmay also be configured with the corresponding VM IP addresses so eachMEC Server knows which VM it maps into in the DC Cloud for maintainingits shadow information. Furthermore, data center cloud 172 may include amultiplicity of cloud data center servers/databases; a sampling of themultiplicity of cloud data center servers/databases may be denoted as afirst cloud data center server/database 176 and a second cloud datacenter server/database 180. In many embodiments of the presentinvention, the multiplicity of cloud data center servers/databases mayinclude one or more shadow operating applications, wherein the shadowoperating applications may store duplicate operational applicationinformation related to the operational functions of the multiplicity ofclients, and thus may track a data progression and system changes as themultiplicity of client change operation statuses and progress throughtasks. In the present embodiment, the one or more shadow operatingapplications may be shadow robo applications which may further includeduplicate robot operation application information and thus may track adata progression and system changes as the multiplicity of robots changeoperation statuses and progress through tasks. In some alternativeembodiments, the one or more shadow operating applications may be shadowdevice operating applications of substantially any other computingdevice that may receive executable computer-readable instructions over anetwork to actuate automated functions of the device to performparticular tasks, wherein the shadow device operating applications mayfurther include duplicate device operation application information andthus may track a data progression and system changes as a multiplicityof devices change operation statuses and progress through tasks. In thepresent embodiment, the communication system may further include amultiplicity of edge PE-data center communication channels, wherein asampling of the multiplicity of edge PE-data center communicationchannels may be denoted as a first edge PE-data center communicationchannel 184 and a second edge PE-data center communication channel 188.In many embodiments of the present invention, the multiplicity of edgePE-data center communication channels may include IP/MPLS, wirednetworks, internet, intranet, local area networks (LANs), wide areanetworks (WANs), wired telephone networks, overlay/tunneling,substantially any other network supporting data communication betweenrespective entities, or any combination thereof. Furthermore, in thepresent embodiment, first cloud data center server/database 176 may beoperably coupled with the MEC gateway via the first edge PE-data centercommunication channel, internet 160, communication overlay/tunneling164, and Edge PE 168, and similarly the second cloud data centerserver/database 180 may be operably coupled to the MEC gateway via thesecond edge PE-data center communication channel, internet 160,communication overlay/tunneling 164, and Edge PE 168. In the presentembodiment, data center cloud 172 may further comprise a providerplatform 192, wherein the provider platform may further store clientoperation data and server operation data. In the present embodiment theclient operation data may include robot operation data. Moreover, inalternative embodiments, client operation data may be device operationdata, wherein the device operation data may be operation data ofsubstantially any other computing device that may receive executablecomputer-readable instructions over a network to actuate automatedfunctions of the device to perform particular tasks. In the presentembodiment the provider platform may be operably coupled to themultiplicity of cloud data center server/databases via cloudcommunication channels. Furthermore, the provider platform may also beoperably couple to the MEC controller via a controller-providercommunication channel 196. In many embodiments of the present invention,the controller-provider communication channels may include IP/MPLS,wireless networks, wired networks, internet, intranet, local areanetworks (LANs), wide area networks (WANs), wired telephone networks,substantially any other network supporting data communication betweenrespective entities, or any combination thereof.

FIG. 2, illustrates an exemplary software module diagram 200 of acommunication system, in accordance with an embodiment of the presentinvention. In the present embodiment, the communication system mayinclude a multiplicity of remote clients sampled as a first remoteclient domain 205, a second remote client domain 210, and an n^(th)remote client domain 215, wherein n may be substantially any positiveinteger. The communication system may further include a multiplicity ofMEC servers sampled as a first MEC servers, a second MEC server, and ann^(th) MEC server (where n may be substantially any positive integer),wherein each MEC server may be respectively, operably coupled to, and intwo-way communication with, each remote client domain, and each MECserver may execute a respective multiplicity of operating applicationssampled as a first operating application 220, a second operatingapplication 225, and an n^(th) operating application 230 (where n may besubstantially any positive integer). In the present embodiment, each MECserver may be in communication with each client domain respectively,over a cellular network. Furthermore, in the present embodiment, thecommunication system may further include a MEC gateway module 235, a MECcontroller module 240 and a data center cloud module 245, wherein theMEC gateway module and the MEC controller module may be operably coupledand in two-way communication with the data center cloud module via anetwork such as, and without limitation, the internet and/or IP/MPLS.The communication system may also include each operating application ofeach MEC sever operably coupled to and in two-way communication withboth the MEC gateway and the MEC controller. In many embodiments eachclient domain may include a grouping of one or more clients, wherein theclients may be group by location and furthermore the clients mayinclude, without limitation, robots, automated computing devices, GUIenabled general purpose computers, sensors, vehicles configured withautomated processes such as, and without limitation, automatedairplanes, automated motor vehicles, automated trains, automated aquaticvehicles, automated helicopter or other flying vehicles, an automateddrone, or other general connected devices with on-board memory andprocessors to download the application for the connected devices and toprocess the actions, or substantially any other device or combinationthereof which may be network enabled for communication and configurableto execute computer-readable instructions received over the network. Insome embodiments, mobile clients moving from one location to another mayhave to leave one domain (MEC server) based on their location and thendo an auto discovery and registration with a new MEC server. In anon-limiting example, initially these moving clients may join somedomain or MEC server and once the device application data is downloadedon their on-board memory, they may take localized actions. Once theystart moving and after certain radius they leave their currentdomain/MEC server then they may not need to auto-discover the newdomain/MEC server until they reach another city or location. They maydecide to join another domain/MEC server based on their need or whenthey reach a certain location. Furthermore, in many embodiments, eachMEC server may execute a respective operating application and thus maytransmit operation information to a respective client domain, whereinindividual clients of the client domain may begin to operate to performparticular tasks. Furthermore, the clients may transmit operation databack to the respectively coupled MEC servers, wherein the operatingapplications of each MEC server may then transmit the operation data tothe MEC gateway module and/or the MEC controller module. In someembodiments the MEC gateway module may forward the operation data fromone or more particular MEC servers to a different one or more particularMEC server so that data gathered by one or more client domains may becommunicated to and possibly used for altering an operation of adifferent one or more client domains. In some embodiments, the MECgateway module may forward operation data to the data center cloudmodule wherein, the data may be stored in servers and used to maintain ashadow record of substantially all operations of the communicationssystem. In many embodiments, each operating application of each MECserver may also forward operation data to the MEC controller module,wherein the MEC controller module may main a running record of data fromeach client domain and each MEC server. The record may be used todictate which operating applications may be applied to which clients.The record may also be forwarded to the data center cloud module tofurther supply the shadow record with information. Further communicationabilities of the many embodiments of the communication system may becomeapparent as described below.

In many embodiments of the present invention, and with reference to FIG.1 and FIG. 2, the communication system may provide, for example, andwithout limitation, client to client communication, which will bedescribed below by way of exemplary, and without limitation, referenceto robots. In the present embodiment, the communication system mayinclude a multiplicity of remote robot clients, wherein the multiplicityof remote robot clients may be organized into a multiplicity of robodomains based on a location of the robots and particular tasks that maybe performed by the robots. By way of example, and without limitation, afirst robo domain may include a first grouping of one or more robots anda second robo domain may include a second grouping of different one ormore robots. Those skilled in the art, in light of and in accordancewith the teaching of the present invention would readily recognize thatthe communication system may include substantially any number ofdomains, wherein each domain may include a multiplicity of robots. Inthe present embodiment, the communication system may also include amultiplicity of MEC servers, wherein each MEC server may host one ormore robo applications and each robo domain may be a subset of aparticular robo application. By way of example, and without limitation,first MEC server 120 may be operably coupled to the first robo domain,wherein the first robo domain may be a subset of a first roboapplication, and the first robo application may be stored in the firstMEC server. Moreover, second MEC server 124 may be operably coupled tothe second robo domain, wherein the second robo domain may be a subsetof a second robo application, and the second robo application may bestored in the second MEC server. Those skilled in the art, in light ofand in accordance with the teaching of the present invention wouldreadily recognize that the communication system may includesubstantially any number of MEC servers, wherein each MEC server may beoperably coupled to a different domain and each domain may be a subsetof a different stored application, stored in the MEC serversrespectively. Furthermore, each MEC server may communicate roboapplication data to the robots of the robo domain that each MEC servermay be operably coupled to. In the present embodiment, the robo domainsmay be configured to receive clusters of services from the particularrobo application from which they may be a subset of In the presentembodiment, the first grouping of one or more robot clients may beconfigured to include a communicational connection with the first MECserver so that intra-communication within the first grouping of robotsmay occur within the first robo domain. Furthermore, the second groupingof one or more robot clients may be configured to include acommunicational connection with the second MEC server so that intracommunication within the second grouping of robot may occur within thesecond robo domain. In the present embodiment, each MEC server may alsoconnect to MEC controller 140 which may continuously recordcommunication system data, wherein the data may be used to potentiallymaintain an overall monitoring and tracking of substantially all MECservers and robo domain operations. Furthermore, the MEC servers may bebound, via instruction from the MEC controller, to maintain apredetermined number of the communicational connections, wherein thepredetermined number may be managed by the MEC controller to achieve anoptimal performance. In the present embodiment, the communication systemmay be configured to potentially prevent robots within a particulardomain from forming a communicational connection with a MEC server thatmay have already reached the predetermined number communicationalconnections to other robot However, in the present embodiment, thecommunication system may also be configured to include MEC gateway 148,wherein each MEC server may be operably connected to the MEC gateway.Furthermore, inter-communication between robots of different domains maybe achieved by communication possibly being directed through the MECgateway. In the present embodiment, the MEC servers of the communicationsystem may also be configured to transmit the robo application to datacenter cloud 172 over an IP/MPLS network to maintain shadow roboapplications in the cloud. Furthermore, the MEC controller may alsotransmit communication system data to the data center cloud via a datacenter provider platform.

In many embodiments of the present invention, and with reference to FIG.1 and FIG. 2, the communication system may also provide, for example,and without limitation, inter-connected client domains, which will bedescribed below by way of exemplary, and without limitation, referenceto robots. In the present embodiment, first MEC server 120 may beconfigured to execute the first robo application with respect to thefirst robo domain, moreover the second MEC server 124 may be configuredto execute the second robo application with respect to the second robodomain. Furthermore, by way of example, and without limitation, thefirst MEC server may be further configured to create a first uniquedomain ID that may identify the first robo domain, moreover the secondMEC server may be further configured to create a second unique domain IDthat may identify the second robo domain, wherein the first uniquedomain ID and the second unique domain ID may be different. Thoseskilled in the art, in light of and in accordance with the teaching ofthe present invention may readily recognize that the communicationsystem may include substantially any number of MEC servers, wherein eachparticular MEC server may create a unique domain ID to identify a domainwhich the particular MEC server may be operably coupled to, furthermoreeach created unique domain ID may be different from other possiblecreated unique domain IDs that may be in use. Moreover, each uniquedomain ID may be registered in a domain ID database in MEC gateway 148after creation, if a same unique domain ID is not already registered,wherein each unique domain ID may be utilized to categorize and indexthe communication system data. In the present embodiment, each MECserver may be configured to gather data from the robots of robo domainsthat each MEC server may be operably coupled to, furthermore thegathered data and unique domain IDs may be transmitted to the MECgateway, wherein the MEC gateway may be configured to store each uniquedomain ID, the gathered data, and communication system data from themonitoring and tracking of substantially all MEC servers and robo domainoperations. In the present embodiment the MEC gateway may further beconfigure to perform a domain ID database lookup, and may forwardcommunication system data related to a particular robo domain to anotherrobo domain via a MEC server that may be operably coupled to the otherrobo domain. By way of illustrative example, and without limitation, thecommunication system may include a multiplicity of deployed agriculturalrobots organized into three agricultural robo domains, wherein eachagricultural robo domain may be in communication with a respective MECserver based on robot locations. Furthermore, by way of illustrativeexample, and without limitation, the robot locations may be in a firstcity, a second city and a third city, wherein one of the threeagricultural robo domains and its respective MEC server may be deployedin each city. Moreover, each respective MEC server may also be incommunication with a same MEC gateway. By further way of illustrativeexample, and without limitation, A MEC server in the first city mayreceive weather data from an agricultural robo domain deployed in thefirst city, wherein the MEC server in the first city may then forwardthe weather information to the MEC gateway and the MEC gateway may thenpossibly decide to forward the weather data to one or both of the otherMEC servers deployed in the second and third cities respectively. Basedon the possibly forwarded weather data, the robots of the agriculturalrobo domains in the second and/or third city respectively, may alteroperation.

FIG. 3 illustrates another exemplary communication system architecture300, in accordance with an embodiment of the present invention. In manyembodiments of the present invention, and with reference to FIG. 1 andFIG. 2 the communication system may also provide, for example, andwithout limitation, client operating application auto discovery andregistration, which will be described below by way of exemplary, andwithout limitation, reference to robots. In some embodiments of thepresent invention the communication system may include for example, andwithout limitation, a multiplicity of robots, wherein a sampling may bedenoted as a first grouping 305 and a second grouping 310. Thecommunication system may further include a first cellular network 315, asecond cellular network 320, a MEC controller 325, an operatingapplication controller master database 330, a first MEC server 335, afirst operation application database 340, a second MEC server 345, and asecond operation application server 350, wherein the operatingapplication controller master data base may store communication systemdata organized in a multiplicity of tables. Furthermore, themultiplicity of tables may include, and without limitation, operatingapplication tables, device registration tables, and server load balancetables. In the present embodiment each of the first operating databaseand the second operating database may host respective operatingapplications, wherein the operating applications may be roboapplications. Furthermore, one or both of the MEC servers may beconfigured to register with the MEC controller, wherein one or both ofthe MEC severs may send a register request signal to the MEC controller.The register request signal may include an IP of the registrationrequesting MEC server, a unique domain ID, individual robot IDs, and anoperating application name of the operating application which the MECserver stores. The MEC controller may be configured to receive thesignal and begin building an operating application table, wherein theMEC server IP may be added to a particular operating application tablefor which it belongs. In the present embodiment, the MEC controller mayalso be configured to send a registration reply to registrationrequesting MEC servers, after registration is completed. The operatingapplication controller master database of the MEC controller may beconfigured to be populated with unique domain IDs, individual robot IDs,operating application names, and MEC server IPs, wherein a portion ofthe operating application names may be the unique domain IDs.Furthermore, the MEC controller may store the individual robo IDs withthe operating application names in device registration tables, whereinthe controller may map device registration tables to operatingapplication tables as illustrated in FIG. 3. In the present embodiment,the MEC controller may also be configured to receive robo connectionupdate notification data from the MEC server as the robots may joinand/or leave a particular MEC server, wherein for each MEC server, theoperating application master data base of the MEC controller, may storeand thus track the notification data in the server load balance table.The notification data may include MEC server IDs and operationalapplication names. Furthermore, data of the server load balance tablesmay be used to possibly ensure that each MEC server may not exceed apredetermined number of robot communicational connections. This mayallow a processing load to be shared across the MEC servers. Thoseskilled in the relevant art, in light of and in accordance with theteachings of the present invention may readily recognize thecommunication system may include substantially any number of MEC serverswherein the MEC controller may record the above described data for eachof the any number of MEC servers, furthermore the described robots maybe substantially any clients such as, and without limitation, any othertypes of computing devices that may receive executable computer-readableinstructions over a network to actuate automated functions of the deviceto perform particular tasks, wherein domains, devices, applications andconnection may be identified by the type of device that may be includedwithin the domains.

In many embodiments of the present invention, individual robots, whichmay belong to particular domains based on operating applications, maysend discovery requests signals to the MEC controller after theindividual robots may be powered on, wherein the discovery requestsignals may include unique robo IDs. Furthermore, based on the uniquerobo IDs, the MEC controller may be configured to find an appropriateMEC server to which a particular individual robot, comprising aparticular unique robo ID, may be assigned to and thus may form acommunicational connection with, wherein an appropriate MEC server maybe a MEC server in communication with a same cellular network as theparticular individual robot and the MEC server may also not be exceedinga predetermined number of communicational connections with otherindividual robots. In the present embodiment the MEC controller may alsobe configured to send discovery reply signals to discovery requestingrobots in response to the discovery request, wherein the discovery replysignals may include MEC server IPs and operating application names. Inmany embodiments of the present invention, and with reference to FIG. 3the communication system may also provide, for example, and withoutlimitation, client to MEC server peripheral communication wherein theperipheral communication may include the transmission of joining data,download data, and leave data, which will be described below by way ofexemplary, and without limitation, reference to robots. In the presentembodiment, individual robots may begin to communicate with assigned MECservers after the individual robots may receive the discovery reply fromthe MEC controller, wherein beginning communication may include theindividual robots transmitting join request signals to the assigned MECservers. Furthermore, the MEC servers may be configured to receive thejoin request signals, accept the join requests, and update a local cachewith robo IDs from joining robots and also update a total number ofaccepted join request, wherein the total number of accepted join requestmay correspond to different accepted robots that may be incommunicational connection with a particular MEC server. In manyembodiments, the MEC servers may also be configured to transmit a joinreply signal to assigned join requesting robots, after a successfuljoining, wherein the robots may be configured to receive the join replysignal. The MEC server may also be configured to transmit connectionupdate notifications to the MEC controller in response to transmittingthe join reply signal to a robot. In some embodiments, robots may beconfigured to repeat a discovery process with the MEC controller inorder to change a MEC server assignment in a case that no join replysignal may be received from a current assigned MEC server. In thepresent embodiment, also after a successful joining, each assigned andnow joined MEC server may transmit a data download start notificationsignal to a respective successfully joined and assigned robot. In a casethat a robot may be ready for a data download, the robot may beconfigured to transmit a data download accept notification to therespectively assigned MEC server, wherein each MEC server may then starta data download to the robot that transmitted the data download acceptnotification. In some embodiments, in a case that no data downloadaccept notification may be received from the successfully joinedassigned robot, each MEC server may be configured to continuouslytransmit a data download start notification to successfully joinedassigned robots respectively, wherein the continuous transmission maycontinue for a particular MEC server until a data download acceptnotification may be received from an assigned and successfully joinedrobot. When the data download may be complete, a finished downloadingMEC server, may transmit a data download end notification to theassigned robot, wherein the robot may then operate according toinstructions that may have been downloaded. In some embodiments,operating robots may decide to go offline, in a case that an operatingrobot chooses to go offline, the operating robot may first transmit aleave request signal to the assigned MEC server, wherein the assign MECServer may respond to the operating robot by transmitting a leave reply.After transmitting the leave reply to operating robot, the assigned MECserver may transmit a connection update notification to the MECcontroller. Those skilled in the relevant art, in light of and inaccordance with the teachings of the present invention may readilyrecognize the described robots may be substantially any clients such as,and without limitation, any other types of computing devices that mayreceive executable computer-readable instructions over a network toactuate automated functions of the device to perform particular tasks.

In many embodiments of the present invention, and with reference to FIG.3, the communication system may also provide, for example, and withoutlimitation, a load balancing between the MEC servers, wherein the MECcontroller may have an overall view of substantially all MEC serversthat may be operably coupled to the MEC controller in order to maintaina load balancing, which will be described below by way of exemplary, andwithout limitation, reference to robots. In the present embodiment, aseach MEC server may receive and may accept join and leave signals, eachMEC server may transmit connection update notifications to the MECcontroller. Furthermore, the MEC controller may be further configured tobuild up the server load balance table in the operating applicationcontroller master database based on connection update notificationinformation. In the server load balance table each MEC server IP andrespective server operating application name may be stored, maintainedand associated with load balance information, wherein load balanceinformation may include a number of active robot connections each MECserver may have, information about the connections, and other loadbalance information. An exemplary, without limitation, load balanceentry may be illustrated as “{MEC Server IP, ApplicationName}---->{Active Robo Connections Info and/or Load Balance Info}”.Other load balance information may include a predetermined number ofmaximum active communicational connections per MEC server. In thepresent embodiment, the MEC controller may use information from entriesof the server load balance table to possibly ensure that each MEC servermay maintain a certain numbers of active communicational connections todifferent robots, wherein the certain number may not exceed thepredetermined number of maximum active communicational connections for aparticular MEC server. In the present embodiment, when an individualrobot may perform a discovery process with the MEC Controller using aunique robo ID, the MEC controller may perform a table look-up, usingthe unique robo ID to possibly locate which operating application therobot should possibly be registered for. The MEC controller may alsopossibly locate an appropriate MEC server that the robot should possiblybe assigned to, wherein the appropriate MEC server may already beregistered with the MEC Controller, for an operating application thatthe robot should possibly be register for. Once the appropriate MECserver may be chosen for a particular robot and operating application,the MEC controller may compare a number of active communicationalconnections between other robots that the appropriate MEC sever maycurrently have to the predetermined number of maximum activecommunicational connections to possibly ensure that an addition of theparticular robot may not exceed the predetermined number of maximumactive communicational connections for the appropriate MEC server. In acase that the appropriate MEC server may not currently be able to formany more active communicational connections to robots, the MECcontroller may locate a different MEC server, using information from theserver load balance table and may attempt the comparison again topossibly ensure that the different MEC server may be able to accept newcommunicational connections. Those skilled in the relevant art, in lightof and in accordance with the teachings of the present invention mayreadily recognize that the described robots may be substantially anyclients such as, and without limitation, any other types of computingdevices that may receive executable computer-readable instructions overa network to actuate automated functions of the device to performparticular tasks.

FIG. 4 illustrates another exemplary communication system architecture400, in accordance with an embodiment of the present invention. In manyembodiments of the present invention, the communication system mayprovide, for example, and without limitation, selective and/or fulldownload of operating application data from the MEC servers to clients,which will be described below by way of exemplary, and withoutlimitation, reference to robots. In some embodiments of the presentinvention the communication system may include for example, and withoutlimitation, a first robot 405 and a second robot 410, wherein the firstrobot and the second robot may belong to a same domain and each robotmay include an on-board cache to store databases for performing tasks.In some embodiments, a cache size of the robots may be different sizes.In the present embodiment the communication system may further include aheterogeneous domain 415, wherein the heterogeneous domain may includerobots with differing cache sizes. Furthermore, in the presentembodiment, a joining robot may be configured to transmit a cache sizeof the joining robot along with a join request when the joining robotmay request to join a particular MEC server 420. The particular MECserver may be configured to decide how much operating applicationdatabase to download to the joining robot, based on the cache sizereceived along with the join request. In some embodiments of the presentinvention, a cache size of the robots may be limited, wherein a limitedcache size may not allow a full download of an operating applicationdatabase. In some other embodiments of the present invention a cachesize of the robots may be ample, wherein an ample cache size may allow afull download of an operating application database. In the presentembodiment, the particular MEC server may be configured to possiblydetermine if the cache size of the joining robot may be limited or maybe ample. In a case that the particular MEC server may determine thatthe cache size of the joining robot may be limited, the particular MECserver may also be configured to perform a partial operating applicationdatabase download to the joining robot. Furthermore, in a case that theparticular MEC server may determine that the cache size of the joiningrobot may be ample, the particular MEC server may also be configured toperform a full operating application database download to the joiningrobot. In many embodiments of the present invention, the communicationsystem may include a multiplicity of MEC servers in communicationalconnection with a multiplicity of robots, wherein each robot may beconfigured to transmit a cache size as described above and each MECserver may be configured to determine robot cache size and furtherperform a full download or partial download as also described above toeach assigned robot. Furthermore, in many alternative embodiments, thedescribed robots may be substantially any clients such as, and withoutlimitation, any other types of computing devices that may receiveexecutable computer-readable instructions over a network to actuateautomated functions of the device to perform particular tasks. Inanother alternative embodiment, a join request may also include databaseidentifiers, wherein the database identifiers may identify portions ofinformation that may be currently stored in a robot and or clientdevice. Furthermore, an assigned MEC server may be configured to receivethe join request and choose particular portions of an operatingapplication database to download, in response to the databaseidentifiers.

In many embodiments of the present invention, the communication systemmay include both heterogeneous domains and homogeneous domains, whereina homogeneous domain may include clients with a same cache size and aheterogeneous domain main may include clients with differing cachesizes. Furthermore, in many embodiments of the present invention, MECservers may be configured to control the domains and governsubstantially all client actions that may be actuated throughout thedomains such that the MEC servers may control the domain to possiblyachieve a fluid functioning.

FIG. 5 illustrates a flowchart of an exemplary method 500 of using acommunication system in accordance with an embodiment of the presentinvention. In the present embodiment, with reference to FIG. 4, by wayof example, and without limitation, the communication system may be usedto control clients in an exemplary, without limitation, heterogeneousdomain, wherein the clients may be for example, and without limitation,robots. As illustrated in FIG. 4, by way of example, and withoutlimitation, MEC server 420 may be configured to be in control ofheterogeneous domain 415, wherein the heterogeneous domain may furtherbe configured as a robo domain. The heterogeneous domain may includefirst robot 405 and second robot 410, wherein both robots may havealready been discovered and also may have already been assigned to MECserver 420. Furthermore, by way of example, and without limitation thefirst robot may include a limited on-board cache, and the second robotmay include an ample on-board cache. In a step 505, both robots maytransmit a join request to MEC server 420, wherein the join request fromthe first robot may include a download size indicative of the limitedon-board cache of the first robot, and the join request from the secondrobot may include a download size indicative of the ample on-board cacheof the second robot. Next, in a decision step 510, the MEC server maydecide do a full or partial download for each of the robots, based onthe download size from each robot respectively, wherein the decision mayinclude checking for an ample download size. In a case that a downloadsize from a robot may not be ample, the MEC server may send a selectivedownload join reply to the robot with non-ample download size, in a step515, wherein the selective download join reply may also notify the robotwith non-ample download size that a partial download may occur. In acase that a download size from a robot may be ample, the MEC server maysend a full download join reply to the robot with ample download size,in a step 520, wherein the full download join reply may also notify therobot with ample download size that a full download may occur. Next, ina step 525, the MEC server may downloading operating database dataaccordingly to both robots. In a step 530 each robot may begin toperform particular tasks. The MEC server may be in constantcommunication with the robots of the domain, in a decision step 535 theMEC server may wait for a command request from any of the robots of thedomain. In a case that a command request may not be received by the MECserver before each robot in the domain complete all tasks, the robotsmay go offline in a step 540. However, in some practical applicationembodiments, a robot may become partially incapacitated and thus may nothave an ability to complete a task due to, for example, and withoutlimitation, low cache space, insufficient database information,insufficient processing power, etc. In this case, the partiallyincapacitated robot may transmit a command request to the MEC server,wherein the MEC server may receive the command request and using amaster database 425 for the domain, the MEC server may performprocessing to determine an action response to the command request in astep 545. Next, in a step 550, the MEC server may transmit a commandaction reply to the partially incapacitated robot, wherein the commandaction reply may include instructions and/or actuation signals for thepartially incapacitated robot to possibly actuate the determined actionresponse and thus possibly complete the task. In the present embodimentthe partially incapacitated robot may not cache this command/actionsince the partially incapacitated robot may have limited cache space. Ina decision step 555, the MEC server may wait for a completion commandfrom the partially incapacitated robot. In a case that the partiallyincapacitated robot may be able to complete the task, the partiallyincapacitated robot may transmit a command complete signal to the MECserver, wherein the MEC server may receive the command complete signaland the robots may continue to operate to perform particular task andthus the method of the present embodiment may cycle back to step 530. Ina case that the partially incapacitated robot may not be able tocomplete the task, the partially incapacitated robot may transmit acommand refuse signal to the MEC server or the partially incapacitatedrobot may not transmit a signal at all, wherein the MEC server mayreceive the command refuse signal or allow a predetermine amount of timeto elapse before trying to choose another robot from the same domain tocomplete the task. In a step 560, the MEC Server may run an algorithm toselect a robot from the domain to possibly complete the task. Onceanother robot may be selected, the MEC server may transmit a commandaction request to the selected robot in a step 565, wherein the selectedrobot may have a full operational application database, and thus may beable to perform a database look-up based on the command action requestand may perform a command action of the command action request. Aftertransmitting the command action request, the MEC server may cycle backto decision step 555 and wait for a completion response. The MEC servermay exhaustively attempt to ensure that any command action for thatdomain may be performed successfully. Therefore, until all commandactions may be performed successfully the MEC Server may continue tochoose substantially any robot from the domain that may possibly be ableto complete the command action successfully.

FIG. 6 illustrates another exemplary communication system architecture,in accordance with an embodiment of the present invention. In someembodiments of the present invention the communication system mayinclude for example, and without limitation, a multiplicity of robots,wherein a sampling may be denoted as a first grouping 605. Thecommunication system may further include a first cellular network 615, aMEC controller 625, an operating application controller master database630, a first MEC server 635, a first operation application database 640,a second MEC server 645, and a second operation application server 650,wherein the operating application controller master data base may storecommunication system data organized in a multiplicity of tables.Furthermore, the multiplicity of tables may include, and withoutlimitation, operating application tables, device registration tables,and server load balance tables. The present embodiment illustrates anexemplary robotics application auto discovery mechanism. The autodiscovery mechanism may include two parts. A first part shows details onhow individual MEC servers 635 and 645 register with the MEC controller625. The second part show details of how individual robots 605 from aRobo Domain register with MEC controller 625.

FIG. 7 illustrates another exemplary communication system architecture,in accordance with an embodiment of the present invention. In someembodiments of the present invention the communication system mayinclude for example, and without limitation, a multiplicity of robots,wherein a sampling may be denoted as a first grouping 705. Thecommunication system may further include a first cellular network 715, aMEC controller 725, an operating application controller master database730, a first MEC server 735, and a first operation application database740, wherein the operating application controller master data base maystore communication system data organized in a multiplicity of tables.Furthermore, the multiplicity of tables may include, and withoutlimitation, operating application tables, device registration tables,and server load balance tables. The present embodiment illustrates anexemplary robot registration with MEC server 735.

FIG. 8 illustrates a flowchart of an exemplary method of MEC serverregistration, in accordance with an embodiment of the present invention.In the present embodiment, With reference to FIG. 6, a process 800starts at a step 805 where the MEC server hosting robotics applicationsmay register with the MEC Controller. In some embodiments the MEC servermay “statically” be given the controller IP address to establishcommunications. In a step 810 the MEC server may send a register requestwith, but not limited to, its IP, Robo application name it is servicingand its location X to the MEC controller. In a step 815 the MECController may build Robo App tables as it gets the register requestsfrom different MEC servers. The controller may add the MEC serverlocation and IP on the Robo App table it belongs. In a step 820 the MECController may allocate a unique Robo Domain ID for each MEC server thatregisters with it. In a step 825 the MEC controller may create a serverload balance table with, but not limited to, Application Name, MECServer IP, Unique Domain ID assigned to each server. This combinationmay define unique MEC server in the controller “server load balance”table. In a step 830 the MEC Controller may send a register reply afterit finishes the MEC server registration. The registration reply maycontain, without limitation, Robo Domain ID. The domain ID may bevirtually representing the group of robots that may join with the MECserver. In a step 835 the MEC controller may also be populated with, butnot limited to, Robo ID and the associated Robo application name“statically” in the Robo ID Table. The controller may map Robo ID Tablewith the App Table where it may find the MEC server IP based on thelocation.

FIG. 9 illustrates a flowchart of an exemplary method of MEC serverregistration, in accordance with an embodiment of the present invention.In the present embodiment, with reference to FIG. 6, a process 800starts at a step 805 where individual robots, once powered on, mayregister with the MEC controller. The individual robots may “statically”be given the controller IP address to establish communication with it.Each individual Robot may have a unique Robo ID. Once the individualrobot is turned on, an on-board program may be executed to send a Robodiscovery request to the MEC controller in a step 910. Once the MECcontroller receives the Robo discovery request it may search the in itsRobo ID database. Once it finds the match in its Robo ID table it mayassign the Robo application for this Robo ID in a step 915. The MECcontroller may decide on the Robo application that may be serviced bythe robot which sends out the Robo discovery request. Based on theassigned Robo application, the MEC controller may find the correct MECserver from the Robo App Table. In a step 920, once the controller knowsthe correct Robo application for the registering robot, it may try tofind out the right MEC server based on the nearest location match thatcame with Robo discovery request. Once the MEC controller finds thecorrect MEC server for the registering robot, it may finally check inits “Server Load Balance” table to make sure the MEC server may accept anew registration in a step 925. In a step 930 if the controller findsthat the assigned MEC server may no longer accept a new connection basedon its “Server Load Balance” table it my go back to step 920 and searchfor the second nearest MEC server from the Robo Application Table. Thisprocess may continue until the controller finds the correct MEC serverfor the registering robot based on its location which may accept a newconnection. In a step 940, the MEC Controller may send a Robo discoveryreply with, but not limited to, MEC server IP, and App Name to the robotin response to Robo discovery request once it successfully finds theright MEC server. In a step 940, if the registering robot may notreceive successful Robo discovery reply within certain timeout period itwould keep trying to send Robo discovery request 910 periodically untilit receives a successful Robo discovery reply. The process ends at astep 945.

FIG. 10 illustrates an exemplary method of a MEC gateway registrationwith a MEC controller and MEC servers, in accordance with an embodimentof the present invention. In the present embodiment, the MEC Gateway maybe connected with multiple different MEC Servers, in this example fourMEC servers may be connected with the gateway but there is no limitationon how many MEC Servers may connect with the MEC gateway. The MECgateway may establish initial communication with the MEC controller. Thegateway may be statically given the controller IP address to initiatecommunications. The MEC gateway may internally create a Multicast Groupfor the MEC servers it wants to serve. The MEC gateway may start theregistration process with MEC controller. The MEC gateway may send“Gateway Register Request (MCAST GR)” to the MEC controller. Theregister request may contain the Multicast Group address it created toserve the MEC servers. Once the MEC controller gets the gateway registerrequest it may locally cache Gateway Multicast Group address and gatewayIP address. The MEC controller may send the “Gateway Register Reply” tothe MEC gateway acknowledging that it received all the necessaryinformation from the gateway. If the MEC gateway doesn't receive thisacknowledgement from the controller it may retry with the gatewayregister request. Once the Steps 1, 2 and 3 are done, The MEC controllermay send the “Gateway Notification (GW IP, MCAST GR)” to all the MECservers registered with the controller. This Notification may notify theMEC servers about gateway's IP and the Multicast Group the gateway hascreated for the servers. Once the MEC servers get the GatewayNotification from the MEC controller it may locally cache the gateway IPaddress and Multicast Group address. At this point, the MEC servers maysend the “Multicast Join” request for the Multicast Group address itreceived from the controller to the MEC gateway. It may also send MECserver Robo Domain ID and Robo App Name to the MEC gateway. The MECgateway at this point may create the Multicast Group with all the MECservers joined with the MEC gateway. The gateway may also create alocale database for each Multicast Group with Robo Domain ID and RoboApp Name mapping. This database may be used by the gateway later toforward the Robo State Update Notification from one MEC servers to theothers.

FIG. 11 illustrates an exemplary method of a MEC server to servercommunication through the MEC gateway, in accordance with an embodimentof the present invention. In the present embodiment, there may be fourMEC servers connected through the MEC gateway and all joined to theMulticast Group the MEC gateway has created before. Each MEC server mayrepresent different Robo domains. In the present non-limiting example,the MEC servers A, B, C and D may be assigned with Robo Domain ID 1, 2,3 and 4 respectively from the MEC controller during MEC server to MECcontroller registration. Each MEC server may represent different sets ofrobots that may be all joined with it during robot to MEC serverregistrations. Once the MEC server may decide to send an update for theother servers, it may form a Robo Update Packet to send it to the MECgateway and then the rest may be taken care or by the gateway. In anon-limiting example, the MEC server A, running with “Robo App: A”,decided to send an update to the MEC gateway. The state update from eachMEC Server may contain the following format {App Name, Type, DI, Length,Data} where:

App Name: Robo App Name.

Type: Internal State Type. Based on the Robo App, the application candefine the different types of databases based on the Robo Application itis serving.

DI: Unique Robo Domain ID.

Length: Length of the Robo Application state data.

Data: Actual Data or State information.

The MEC Server may create the state update IP packet with MulticastGroup address the gateway may have created, own source IP address. Itmay then encapsulate the IP packet with unicast destination address ofthe gateway and own source IP address. It may need to add IP GRE headerfor encapsulation reason, the GRE protocol may be point the inner packetis IP packet. The MEC server IP packet may go to the MEC gateway overinternet as the destination IP address is the gateway. The gateway maydecapsulate the packet and may find the inner packet is for theMulticast Group address it created for the MEC servers state updateinformation propagation. The gateway may do packet inspection to see theRobo App Name in the state update packet. The gateway may do IPMulticast lookup in its own forwarding table to find out what are theMEC servers registered with it. After finding the list of MEC servers,it may check the Robo App Name from the state update packet and maylookup if there are any MEC servers registered for the same Robo AppName. If MEC gateway finds the matching Robo App Name for the other MECservers registered with the same Multicast Group it may forward the MECstate update packet to those servers only. In the present example, thereare four MEC servers registered with the MEC gateway with their RoboDomain ID, App Name for the Multicast Group the gateway has created. Thethree MEC servers A, B and C may be running with same Robo App: 100,whereas server D may be running with Robo App: 200. When MEC server Asends the Robo Update Notification packet to other MEC servers, thegateway may receive the update packet and may find all the MEC serversregistered for the Multicast Group. MEC gateway may do the inspection inthe update notification packet to find the App Name:100 and from the AppName: 100 the gateway may find the Robo Domain IDs for the different MECservers. The gateway may find only DI:1, 2 and 3 are matching with RoboApp: 100. Based on the DI and skipping source, the gateway may only pickMEC servers B and C to multicast the update notification. Once MECservers B and C receive the Robo Update Notification packet, each servermay inspect the update packet. It may find the Internal State Type,Length of the data and actual update data. Based on this information,the MEC server may update its internal state database. The MEC servermay decide based on the update if the information needs to bebroadcasted to all the robots connected to the MEC server. If theinformation needs to be updated to the individual robots, MEC server maytake the necessary action to forward/push the information to all therobots it represents.

It may be contemplated that in many embodiments the robots may not betied with any Robo Application. The robots may become universal as RoboApplication or the intelligence move to the MEC server and/or cloud datacenter instead of running those directly in the individual Robots. TheMEC controller and MEC server controlling the group of robots or RoboDomain may decide which Robo Application needs to be downloaded into therobots. The MEC controller may maintain {Robo ID} to {Robo Application}mapping to decide which Robo Application a robot may be serving. Thatmapping may easily be updated to move {Robo ID} from {Robo App 1} to{Robo App 2}. As the robots may not be tied with the Robo Applicationthe MEC server downloads Robo App to the robots and the MEC server mayalso instruct robots to wipe out the Robo App in the on-board cache.Then the robot may send the Robo Discover Request to the MEC controllerto get associated with a different Robo App through a different MECserver. The robots may change their location, they may not be bound witha certain location and may get associated with a different MEC serverthrough MEC controller registration to server the same Robo App or toserve a different Robo App. In a non-limiting example, a defense robotmay be used for an agricultural robot, or an agricultural robot may bere-used for agricultural work in a different location, or anagricultural robot may be used for manufacturing or industrial or as asecurity guard or some other purposes through the MEC controller {RoboID} mapping mechanism.

FIG. 12 illustrates an exemplary method of a MEC integration with acloud provider platform, in accordance with an embodiment of the presentinvention. In the present example, the provider platform may haveinternal network connections with the list of servers within the datacenter. The provider platform may decide the primary and backup servers.This may be done through manual configuration through a networkoperator.

FIG. 13 illustrates an exemplary method of a MEC integration with acloud provider platform, in accordance with an embodiment of the presentinvention. In the present example, the MEC controller may be staticallyprogrammed by the network operator for the cloud provide platform IPaddress. Once the MEC controller is powered on it may send a connectrequest to the provider platform. The provider platform may send theConnect Reply to the MEC controller. At this point the connectionbetween MEC controller and the provider platform may be ready. Once theinitial handshake is done control messages may be exchanged to create ashadow control VM in the data center servers.

FIG. 14 illustrates an exemplary method of a MEC integration with acloud provider platform, in accordance with an embodiment of the presentinvention. In the present example, a MEC server may create a Shadow RoboApplication data base.

FIG. 15 illustrates an exemplary method of a Robo App state update indata center servers, in accordance with an embodiment of the presentinvention. The present example illustrates an exemplary Robo App statetransition/update in the cloud data center servers.

FIG. 16 illustrates an exemplary method of a MEC controller state updatein data center servers, in accordance with an embodiment of the presentinvention. The present example illustrates an exemplary MEC controllerstate transition/update in the cloud data center servers.

In some embodiments of the present invention MEC server may hostrobotics applications developed by a multiplicity of users. In someother embodiments of the present invention, individual clients may beoperably coupled to MEC servers without the use of domains, thus clientsmay not be grouped by location information and operating application. Insome other embodiments of the present invention, a MEC controller maynot communicate with individual clients. In other embodiments a MECgateway may not store or be aware of particular domains. In anotherembodiment a MEC server may assume all assigned clients have aparticular cache size and may further only perform a same download toall robots. In some other embodiments the communication system mayinclude a static configuration file which may be maintained by anoperator/administrator, that may define robot to MEC Server connectioninformation, wherein once a MEC Server exceeds a maximum number ofconnections the MEC server may reject any more connection coming to theMEC server, based on the configuration file, however the individualrobots that may all be connected with certain MEC servers may stillcommunicate through the MEC Server.

It may be contemplated that many embodiments including a MEC controlleras described may optimally maintain a load for each MEC server in anetwork and further may provide a dynamic load balance mechanism.Furthermore, it may be contemplated that in some embodiments, individualrobots may no longer need to be intelligent and sophisticated since mostof a robot application specific intelligence may be moved in the MECserver. Moreover, in other embodiments each robot within a domain mayshare work with other robots. It may also be contemplated that thecommunication system of the present invention may allow most robotswithin a domain to be connected and may provide performance on a domainlevel rather than an individual robot level. It may further becontemplated that as a load may be shared across a domain, even ifindividual robot failure occurs (for unexpected reason or due to amechanical failure), a domain performance may remain optimal.

Those skilled in the art will readily recognize, in light of and inaccordance with the teachings of the present invention, that any of theforegoing steps and/or system modules may be suitably replaced,reordered, removed and additional steps and/or system modules may beinserted depending upon the needs of the particular application, andthat the systems of the foregoing embodiments may be implemented usingany of a wide variety of suitable processes and system modules, and isnot limited to any particular computer hardware, software, middleware,firmware, microcode and the like. For any method steps described in thepresent application that can be carried out on a computing machine, atypical computer system can, when appropriately configured or designed,serve as a computer system in which those aspects of the invention maybe embodied. Thus, the present invention is not limited to anyparticular tangible means of implementation.

FIG. 17 illustrates a block diagram depicting an exemplary client/serversystem which may be used by an exemplary web-enabled/networkedembodiment of the present invention.

A communication system 1700 includes a multiplicity of clients with asampling of clients denoted as a client 1702 and a client 1704, amultiplicity of local networks with a sampling of networks denoted as alocal network 1706 and a local network 1708, a global network 1710 and amultiplicity of servers with a sampling of servers denoted as a server1712 and a server 1714.

Client 1702 may communicate bi-directionally with local network 1706 viaa communication channel 1716. Client 1704 may communicatebi-directionally with local network 1708 via a communication channel1718. Local network 1706 may communicate bi-directionally with globalnetwork 1710 via a communication channel 1720. Local network 1708 maycommunicate bi-directionally with global network 1710 via acommunication channel 1722. Global network 1710 may communicatebi-directionally with server 1712 and server 1714 via a communicationchannel 1724. Server 1712 and server 1714 may communicatebi-directionally with each other via communication channel 1724.Furthermore, clients 1702, 1704, local networks 1706, 1708, globalnetwork 1710 and servers 1712, 1714 may each communicatebi-directionally with each other.

In one embodiment, global network 1710 may operate as the Internet. Itwill be understood by those skilled in the art that communication system1700 may take many different forms. Non-limiting examples of forms forcommunication system 1700 include local area networks (LANs), wide areanetworks (WANs), wired telephone networks, wireless networks, or anyother network supporting data communication between respective entities.

Clients 1702 and 1704 may take many different forms. Non-limitingexamples of clients 1702 and 1704 include personal computers, personaldigital assistants (PDAs), cellular phones and smartphones.

Client 1702 includes a CPU 1726, a pointing device 1728, a keyboard1730, a microphone 1732, a printer 1734, a memory 1736, a mass memorystorage 1738, a GUI 1740, a video camera 1742, an input/output interface1744 and a network interface 1746.

CPU 1726, pointing device 1728, keyboard 1730, microphone 1732, printer1734, memory 1736, mass memory storage 1738, GUI 1740, video camera1742, input/output interface 1744 and network interface 1746 maycommunicate in a unidirectional manner or a bi-directional manner witheach other via a communication channel 1748. Communication channel 1748may be configured as a single communication channel or a multiplicity ofcommunication channels.

CPU 1726 may be comprised of a single processor or multiple processors.CPU 1726 may be of various types including micro-controllers (e.g., withembedded RAM/ROM) and microprocessors such as programmable devices(e.g., RISC or SISC based, or CPLDs and FPGAs) and devices not capableof being programmed such as gate array ASICs (Application SpecificIntegrated Circuits) or general purpose microprocessors.

As is well known in the art, memory 1736 is used typically to transferdata and instructions to CPU 1726 in a bi-directional manner. Memory1736, as discussed previously, may include any suitablecomputer-readable media, intended for data storage, such as thosedescribed above excluding any wired or wireless transmissions unlessspecifically noted. Mass memory storage 1738 may also be coupledbi-directionally to CPU 1726 and provides additional data storagecapacity and may include any of the computer-readable media describedabove. Mass memory storage 1738 may be used to store programs, data andthe like and is typically a secondary storage medium such as a harddisk. It will be appreciated that the information retained within massmemory storage 1738, may, in appropriate cases, be incorporated instandard fashion as part of memory 1736 as virtual memory.

CPU 1726 may be coupled to GUI 1740. GUI 1740 enables a user to view theoperation of computer operating system and software. CPU 1726 may becoupled to pointing device 1728. Non-limiting examples of pointingdevice 1728 include computer mouse, trackball and touchpad. Pointingdevice 1728 enables a user with the capability to maneuver a computercursor about the viewing area of GUI 1740 and select areas or featuresin the viewing area of GUI 1740. CPU 1726 may be coupled to keyboard1730. Keyboard 1730 enables a user with the capability to inputalphanumeric textual information to CPU 1726. CPU 1726 may be coupled tomicrophone 1732. Microphone 1732 enables audio produced by a user to berecorded, processed and communicated by CPU 1726. CPU 1726 may beconnected to printer 1734. Printer 1734 enables a user with thecapability to print information to a sheet of paper. CPU 1726 may beconnected to video camera 1742. Video camera 1742 enables video producedor captured by user to be recorded, processed and communicated by CPU1726.

CPU 1726 may also be coupled to input/output interface 1744 thatconnects to one or more input/output devices such as such as CD-ROM,video monitors, track balls, mice, keyboards, microphones,touch-sensitive displays, transducer card readers, magnetic or papertape readers, tablets, styluses, voice or handwriting recognizers, orother well-known input devices such as, of course, other computers.

Finally, CPU 1726 optionally may be coupled to network interface 1746which enables communication with an external device such as a databaseor a computer or telecommunications or internet network using anexternal connection shown generally as communication channel 1716, whichmay be implemented as a hardwired or wireless communications link usingsuitable conventional technologies. With such a connection, CPU 1726might receive information from the network, or might output informationto a network in the course of performing the method steps described inthe teachings of the present invention.

Many embodiments of the present invention attempt to address roboticsolutions through virtualizing robot applications in a MEC Server,wherein the MEC server may sit edge of a cellular network and may becapable of running robo applications and downloading applications toeach individual robots within a robo domain. It may be contemplated thatthe individual robots may no longer need to be super intelligent. It mayfurther be contemplated that fewer computing resources may be need inthe individual robots, therefore cost and production time of eachindividual robot may be decreased.

It will be further apparent to those skilled in the art that at least aportion of the novel method steps and/or system components of thepresent invention may be practiced and/or located in location(s)possibly outside the jurisdiction of the United States of America (USA),whereby it will be accordingly readily recognized that at least a subsetof the novel method steps and/or system components in the foregoingembodiments must be practiced within the jurisdiction of the USA for thebenefit of an entity therein or to achieve an object of the presentinvention. Thus, some alternate embodiments of the present invention maybe configured to comprise a smaller subset of the foregoing means forand/or steps described that the applications designer will selectivelydecide, depending upon the practical considerations of the particularimplementation, to carry out and/or locate within the jurisdiction ofthe USA. For example, any of the foregoing described method steps and/orsystem components which may be performed remotely over a network (e.g.,without limitation, a remotely located server) may be performed and/orlocated outside of the jurisdiction of the USA while the remainingmethod steps and/or system components (e.g., without limitation, alocally located client) of the forgoing embodiments are typicallyrequired to be located/performed in the USA for practicalconsiderations. In client-server architectures, a remotely locatedserver typically generates and transmits required information to a USbased client, for use according to the teachings of the presentinvention. Depending upon the needs of the particular application, itwill be readily apparent to those skilled in the art, in light of theteachings of the present invention, which aspects of the presentinvention can or should be located locally and which can or should belocated remotely. Thus, for any claims construction of the followingclaim limitations that are construed under 35 USC § 112 (6) it isintended that the corresponding means for and/or steps for carrying outthe claimed function are the ones that are locally implemented withinthe jurisdiction of the USA, while the remaining aspect(s) performed orlocated remotely outside the USA are not intended to be construed under35 USC § 112 (6). In some embodiments, the methods and/or systemcomponents which may be located and/or performed remotely include,without limitation, clients, and MEC server, controllers and gateways.

It is noted that according to USA law, all claims must be set forth as acoherent, cooperating set of limitations that work in functionalcombination to achieve a useful result as a whole. Accordingly, for anyclaim having functional limitations interpreted under 35 USC § 112 (6)where the embodiment in question is implemented as a client-serversystem with a remote server located outside of the USA, each suchrecited function is intended to mean the function of combining, in alogical manner, the information of that claim limitation with at leastone other limitation of the claim. For example, in client-server systemswhere certain information claimed under 35 USC § 112 (6) is/(are)dependent on one or more remote servers located outside the USA, it isintended that each such recited function under 35 USC § 112 (6) is to beinterpreted as the function of the local system receiving the remotelygenerated information required by a locally implemented claimlimitation, wherein the structures and or steps which enable, andbreathe life into the expression of such functions claimed under 35 USC§ 112 (6) are the corresponding steps and/or means located within thejurisdiction of the USA that receive and deliver that information to theclient (e.g., without limitation, client-side processing andtransmission networks in the USA). When this application is prosecutedor patented under a jurisdiction other than the USA, then “USA” in theforegoing should be replaced with the pertinent country or countries orlegal organization(s) having enforceable patent infringementjurisdiction over the present application, and “35 USC § 112 (6)” shouldbe replaced with the closest corresponding statute in the patent laws ofsuch pertinent country or countries or legal organization(s).

All the features disclosed in this specification, including anyaccompanying abstract and drawings, may be replaced by alternativefeatures serving the same, equivalent or similar purpose, unlessexpressly stated otherwise. Thus, unless expressly stated otherwise,each feature disclosed is one example only of a generic series ofequivalent or similar features.

It is noted that according to USA law 35 USC § 112 (1), all claims mustbe supported by sufficient disclosure in the present patentspecification, and any material known to those skilled in the art neednot be explicitly disclosed. However, 35 USC § 112 (6) requires thatstructures corresponding to functional limitations interpreted under 35USC § 112 (6) must be explicitly disclosed in the patent specification.Moreover, the USPTO's Examination policy of initially treating andsearching prior art under the broadest interpretation of a “mean for”claim limitation implies that the broadest initial search on 112(6)functional limitation would have to be conducted to support a legallyvalid Examination on that USPTO policy for broadest interpretation of“mean for” claims. Accordingly, the USPTO will have discovered amultiplicity of prior art documents including disclosure of specificstructures and elements which are suitable to act as correspondingstructures to satisfy all functional limitations in the below claimsthat are interpreted under 35 USC § 112 (6) when such correspondingstructures are not explicitly disclosed in the foregoing patentspecification. Therefore, for any invention element(s)/structure(s)corresponding to functional claim limitation(s), in the below claimsinterpreted under 35 USC § 112 (6), which is/are not explicitlydisclosed in the foregoing patent specification, yet do exist in thepatent and/or non-patent documents found during the course of USPTOsearching, Applicant(s) incorporate all such functionally correspondingstructures and related enabling material herein by reference for thepurpose of providing explicit structures that implement the functionalmeans claimed. Applicant(s) request(s) that fact finders during anyclaims construction proceedings and/or examination of patentallowability properly identify and incorporate only the portions of eachof these documents discovered during the broadest interpretation searchof 35 USC § 112 (6) limitation, which exist in at least one of thepatent and/or non-patent documents found during the course of normalUSPTO searching and or supplied to the USPTO during prosecution.Applicant(s) also incorporate by reference the bibliographic citationinformation to identify all such documents comprising functionallycorresponding structures and related enabling material as listed in anyPTO Form-892 or likewise any information disclosure statements (IDS)entered into the present patent application by the USPTO or Applicant(s)or any 3^(rd) parties. Applicant(s) also reserve its right to lateramend the present application to explicitly include citations to suchdocuments and/or explicitly include the functionally correspondingstructures which were incorporate by reference above.

Thus, for any invention element(s)/structure(s) corresponding tofunctional claim limitation(s), in the below claims, that areinterpreted under 35 USC § 112 (6), which is/are not explicitlydisclosed in the foregoing patent specification, Applicant(s) haveexplicitly prescribed which documents and material to include theotherwise missing disclosure, and have prescribed exactly which portionsof such patent and/or non-patent documents should be incorporated bysuch reference for the purpose of satisfying the disclosure requirementsof 35 USC § 112 (6). Applicant(s) note that all the identified documentsabove which are incorporated by reference to satisfy 35 USC § 112 (6)necessarily have a filing and/or publication date prior to that of theinstant application, and thus are valid prior documents to incorporatedby reference in the instant application.

Having fully described at least one embodiment of the present invention,other equivalent or alternative methods of implementing a clientcommunication system according to the present invention will be apparentto those skilled in the art. Various aspects of the invention have beendescribed above by way of illustration, and the specific embodimentsdisclosed are not intended to limit the invention to the particularforms disclosed. The particular implementation of the clientcommunication may vary depending upon the particular context orapplication. By way of example, and not limitation, the clientcommunication system described in the foregoing were principallydirected to an MEC integrated cloud communication network forcontrolling robots implementations; however, similar techniques mayinstead be applied to controlling vehicles such as cars that drivethemselves, drone air planes, construction and industrial vehicles, orany other robotic devices related to for example and without limitation,defense, agricultural, and/or industrial robots, which implementationsof the present invention are contemplated as within the scope of thepresent invention. The invention is thus to cover all modifications,equivalents, and alternatives falling within the spirit and scope of thefollowing claims. It is to be further understood that not all of thedisclosed embodiments in the foregoing specification will necessarilysatisfy or achieve each of the objects, advantages, or improvementsdescribed in the foregoing specification.

Claim elements and steps herein may have been numbered and/or letteredsolely as an aid in readability and understanding. Any such numberingand lettering in itself is not intended to and should not be taken toindicate the ordering of elements and/or steps in the claims.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the present invention has been presented for purposes ofillustration and description, but is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the artwithout departing from the scope and spirit of the invention. Theembodiment was chosen and described in order to best explain theprinciples of the invention and the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

The Abstract is provided to comply with 37 C.F.R. Section 1.72(b)requiring an abstract that will allow the reader to ascertain the natureand gist of the technical disclosure. That is, the Abstract is providedmerely to introduce certain concepts and not to identify any key oressential features of the claimed subject matter. It is submitted withthe understanding that it will not be used to limit or interpret thescope or meaning of the claims.

The following claims are hereby incorporated into the detaileddescription, with each claim standing on its own as a separateembodiment.

What is claimed is:
 1. A method comprising the steps of: communicatingwith a mobile edge computing server as a client, the mobile edgecomputing server at least being configured to be in control of aheterogeneous domain; requesting to join the heterogeneous domain of themobile edge computing server, the mobile edge computing server at leastbeing configured for: determining an on-board cache size of therequesting client; determining a download size for the requestingclient; and transmitting a download to the requesting client, thedownload at least comprising an application, an operating database, anda size at least in part being determined by the download size; receivingthe download; executing at least one task at least in part beingdetermined by the download; and communicating with a mobile edgecomputing controller; sending a discovery request to the mobile edgecomputing controller; and receiving a discovery reply from the mobileedge computing controller, the mobile edge computing controller being atleast configured for: assigning an application to the discoveryrequesting client; determining a mobile edge computing server for thediscovery requesting client; and transmitting the discovery reply to thediscovery requesting client, the discovery reply at least comprising anidentification for the mobile edge computing server for the discoveryrequesting client.
 2. The method as recited in claim 1, in which themobile edge computing controller is further configured for loadbalancing between mobile edge computing servers.
 3. A method comprising:steps for communicating with a mobile edge computing server in controlof a heterogeneous domain; steps for requesting to join theheterogeneous domain of the mobile edge computing server; steps forreceiving a download from the mobile edge computing server; and stepsfor executing at least one task at least in part being determined by thedownload.
 4. The method as recited in claim 3, further comprising stepsfor transmitting a response of said executing.
 5. The method as recitedin claim 4, further comprising steps for receiving a command actionreply from the mobile edge computing server.
 6. The method as recited inclaim 5, further comprising steps for transmitting a command refusesignal.
 7. The method as recited in claim 3, further comprising: stepsfor communicating with a mobile edge computing controller; steps forsending a discovery request to the mobile edge computing controller; andsteps for receiving a discovery reply from the mobile edge computingcontroller.
 8. A non-transitory computer-readable storage medium with anexecutable program stored thereon, wherein the program instructs one ormore processors to perform the following steps: communicating with amobile edge computing server as a client, the mobile edge computingserver at least being configured to be in control of a heterogeneousdomain; requesting to join the heterogeneous domain of the mobile edgecomputing server, the mobile edge computing server at least beingconfigured for: determining an on-board cache size of the requestingclient; determining a download size for the requesting client; andtransmitting a download to the requesting client, the download at leastcomprising an application, an operating database, and a size at least inpart being determined by the download size; receiving the download;executing at least one task at least in part being determined by thedownload; and communicating with a mobile edge computing controller;sending a discovery request to the mobile edge computing controller; andreceiving a discovery reply from the mobile edge computing controller,the mobile edge computing controller being at least configured for:assigning an application to the discovery requesting client; determininga mobile edge computing server for the discovery requesting client;transmitting the discovery reply to the discovery requesting client, thediscovery reply at least comprising an identification for the mobileedge computing server for the discovery requesting client.